用C写一个时间复杂度最低的冒泡排序
时间: 2024-09-17 17:07:52 浏览: 37
ccc.rar_排序法计算C
冒泡排序是一种简单的排序算法,它通过反复交换相邻的元素,将较大的元素逐步“浮”到数组的顶部。下面是C语言实现的一个基本冒泡排序示例,其时间复杂度是O(n^2),因为无论输入是否有序,最坏情况下都需要进行n次遍历。
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历n-1轮,因为最后一轮肯定已经排好序了
for (int j = 0; j < n - i - 1; j++) { // 内层循环每次减少一个比较
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int data[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(data) / sizeof(data[0]);
bubble_sort(data, n);
printf("Sorted array: \n");
for (int i = 0; i < n; i++)
printf("%d ", data[i]);
printf("\n");
return 0;
}
```
阅读全文