冒泡排序是一种简单的排序算法。它会依次比较相邻两个元素,如果它们的顺序错误就交换它们的位置,直到所有元素都排列成功。
以下是C语言冒泡排序的实现过程:
1.先定义数组
代码示例:
int a[10] = {23, 56, 12, 45, 9, 17, 98, 67, 41, 3};
2.开始排序
首先,我们需要使用两层循环来遍历每一个元素。
外层循环从第一个元素开始,一直遍历到倒数第二个元素,表示将要进行比较的元素。
内层循环从第一个元素开始,遍历到没有比较过的最后一个元素,表示正在进行比较的元素。
代码示例:
int i, j, temp;
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
//比较相邻两个元素,如果前一个元素大于后一个元素就交换它们的位置
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
3.输出排序结果
代码示例:
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
完整代码示例:
#include <stdio.h>
int main()
{
int a[10] = {23, 56, 12, 45, 9, 17, 98, 67, 41, 3};
int i, j, temp;
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
示例说明:
我们使用数组 {23, 56, 12, 45, 9, 17, 98, 67, 41, 3}
来说明冒泡排序的实现过程。
第一次比较,我们会比较第 0 个元素和第 1 个元素,第 1 个元素和第 2 个元素,第 2 个元素和第 3 个元素,第 3 个元素和第 4 个元素,第 4 个元素和第 5 个元素,第 5 个元素和第 6 个元素,第 6 个元素和第 7 个元素,第 7 个元素和第 8 个元素,第 8 个元素和第 9 个元素。经过第一次比较后,最大的元素 98 就会排在数组的最后一个位置。
第二次比较,我们会再次比较第 0 个元素和第 1 个元素,第 1 个元素和第 2 个元素,第 2 个元素和第 3 个元素,第 3 个元素和第 4 个元素,第 4 个元素和第 5 个元素,第 5 个元素和第 6 个元素,第 6 个元素和第 7 个元素,第 7 个元素和第 8 个元素。经过第二次比较后,次大的元素 67 就会排在数组的倒数第二个位置。
以此类推,经过多次比较和交换,我们最终得到了一个升序排列的数组:{3, 9, 12, 17, 23, 41, 45, 56, 67, 98}
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言冒泡排序法的实现(升序排序法) - Python技术站