バブルソート(ソートアルゴリズム)

1. バブルソートにより、乱雑なシーケンスをきれいにソートできます。

たとえば、指定された配列 {5, 2, 1, 4, 3, 6, 7, 8, 9, 10} は次のようになります。

{1、2、3、4、5、6、7、8、9、10};

2. アルゴリズム原理

隣接する要素を比較し、最初の要素が 2 番目の要素より大きい場合は 2 つの要素を交換し、大きい方の要素を後の要素と比較します。同様に、後者より大きい場合は、最大の要素が配置されるまで 2 つの要素を交換します。最後の位置でバブル ソートが完了します。10 個のデータを比較する場合、最初の数値を他の 9 個と比較する必要がある場合、9 回かかります。2 番目の数値を比較する場合、既に比較する必要はありません。比較の最大数は 10-1-1=8 で、必要な比較は 8 回だけです。バブル ソートを 1 回行うと大きな数が後回しになり、10 個の要素には最大 9 回の比較が必要です。

3. コード表示

int main()
{
	int  arr[10] = {10,9,8,7,6,5,4,3,2,1};
	int sz = sizeof(arr) / sizeof(arr[0]);//数组长度
	int i;
	for (i = 0; i < sz - 1; i++)//趟数
	{
		int j = 0;
		for (j = 0; j < sz - 1 - i; j++)//比较次数
		{
			if (arr[j] > arr[j + 1])//前面大于后面,交换
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
    }
	for (i = 0; i < sz; i++)//打印数组
	{
		printf("%d ", arr[i]);
	}
}

3. ディスプレイを実行します

 

おすすめ

転載: blog.csdn.net/yyqzjw/article/details/131909947