1. 从序列的个元素开始依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。
2. 继续比较下一个相邻的两个元素,直到将整个序列比较完成。
3. 重复上述步骤,直到整个序列都按照升序或者降序排列。
以下是用C语言实现冒泡排序的代码
“`cclude
{tp; – 1; i++) // 外层循环控制排序轮数
{ – 1 – i; j++) // 内层循环控制每轮排序中的比较次数
{
if (arr[j] >arr[j + 1]) // 如果前一个元素大于后一个元素,则交换它们的位置
{p = arr[j];
arr[j] = arr[j + 1];p;
}
}
}
tain()
{t arr[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };t = sizeof(arr) / sizeof(arr[0]););t; i++)
{tf(“%d “, arr[i]);
}tf”); 0;
ain`函数中调用`bubble_sort`函数来对一个测试数组进行排序,并输出排序结果。
冒泡排序虽然比较慢,但是由于其实现简单,所以仍然被广泛应用于各种场合。在实际应用中,大家可以通过优化算法来提高冒泡排序的效率。例如,可以在内层循环中增加一个标记,如果某一轮比较中没有发生交换,则说明序列已经有序,可以直接退出循环。