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. ディスプレイを実行します