c语言 冒泡算法 方法·和时间性举例
时间: 2024-12-22 11:26:38 浏览: 0
C语言排序算法冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。这个过程就像气泡从液面一个个浮出水面一样,因此得名“冒泡排序”。
在C语言中,我们可以使用以下步骤编写冒泡排序算法:
```c
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历n-1次,因为最后一次已经有序了
for (int j = 0; j < n - 1 - i; j++) { // 内层循环每次减少1,避免重复比较已排序的部分
if (arr[j] > arr[j + 1]) { // 如果前一个比后一个大,则交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
关于时间性,冒泡排序的时间复杂度是O(n^2),其中n是数组的长度。这是因为最坏的情况下,需要对每一对相邻元素做比较并可能交换位置,总共要做(n-1) * n / 2次操作。例如,对于一个包含10个数字的数组,第一次外层循环会执行9次,第二次8次,依此类推,直到内层循环不再有交换发生,整个过程大约需要45次比较((1+9)+(2+8)+...+(9+1)=45)。
阅读全文