[Cベースバブルソート]

7464 ワード


泡の位置合わせ


ソートには、気泡ソート、挿入ソート、ヒップホップソート、高速ソートなど、さまざまな方法があります.気泡ソートは、互いに隣接する値を比較することによって、より大きな値を後方に移動し、ソートする最も簡単なソートアルゴリズムです.

int arr[5] = {14, 12, 1, 5, 10}
泡ソートを上記の配列に適用します.
  • arr[0]とarr[1]の値を比較します.(比較14と12の値)
  • arr[0]はarr[1]より大きいのでarr[0]とarr[1]を変更する.
  • アレイ状態:{12,14,1,5,10}
  • 以下でarr[1]とarr[2]を比較する.
  • arr[1]はarr[2]よりも大きいのでarr[1]とarr[2]を変更する.
  • アレイ状態:{12,14,5,10}
  • ビット目のプロシージャを繰り返し、配列の状態は次のとおりです.
  • アレイ状態:{12,1,5,10,14}
  • は、最初に戻り、
  • の並べ替えを継続する.
  • 最終配列順:
  • アレイ状態:{1,5,10,12,14}
  • Bubbleソートは、隣接する2つの値を比較し、大きな数を連続して後方に送信する方法です.

    変数の宣言

    #include <stdio.h>
    
    int main()
    {
    	int arr[10] = { 9, 17, 5, 6, 124, 112, 1, 3, 87, 55 };
    
    	int temp; // 두 값을 바꿀 때 사용할 변수
    	int length = sizeof(arr) / sizeof(int);
    
    	printf("정렬 전 : ");
    	for(int i = 0; i < length; i++)
    	{
    		printf("%d ", arr[i]); 
    	}
    
    	for(int i = 0; i < length - 1; i++)
    	{
    		for(int j = 0; j < length -1 -i; j++)
    		{
    			if(arr[j + 1] < arr[j])
    			{
    				temp = arr[j];
    				arr[j] = arr[j + 1];
    				arr[j + 1] = temp;
    			}
    		}
    	}
    
    	printf("\n정렬 후 : ");
    	for(int i = 0; i < length; i++)
    	{
    		printf("%d ", arr[i]);
    	}
    	return 0;
    }