C语言实现冒泡排序算法的示例详解
冒泡排序是一种简单但效率较低的排序算法。它重复遍历要排序的数列,每次比较相邻两个元素,如果顺序不对就交换两元素顺序。该算法的时间复杂度为 O(n^2)。
以下是C语言实现冒泡排序的示例代码:
#include <stdio.h>
int main() {
int arr[] = {5, 3, 8, 6, 4};
int len = sizeof(arr) / sizeof(int);
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
以上代码中,我们使用了两个嵌套的for循环。第一个for循环控制趟数,第二个for循环控制每趟比较的次数。在每趟遍历中,当前要比较的两个相邻元素是 arr[j] 和 arr[j + 1],如果顺序不对就交换它们的位置。
下面是另一个示例:
#include <stdio.h>
void bubble_sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 3, 8, 6, 4};
int len = sizeof(arr) / sizeof(int);
bubble_sort(arr, len);
int i;
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
以上示例中,我们将排序代码封装在一个函数中 bubble_sort
。将数组以及它的长度传递给函数,让函数去执行排序,并在 main
函数中打印结果。
以上两个示例展示了如何在C语言中实现冒泡排序算法。当需要排序的项目量很小的时候,冒泡排序是一个很好的选择,但当需要排序的项目量较大时,它的效率会受到影响。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现冒泡排序算法的示例详解 - Python技术站