请具体举出一个冒泡排序法的例子
时间: 2024-11-17 20:29:51 浏览: 12
行业分类-物理装置-一种数据信息提取方法.zip
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。下面是一个使用C语言实现冒泡排序的基本例子,假设我们要对一个整数数组进行升序排列:
```c
#include <stdio.h>
void bubbleSort(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 arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:\n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
bubbleSort(arr, n);
printf("\n排序后的数组(升序):\n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
在这个例子中,运行程序会输出原始数组以及经过冒泡排序后的升序数组。注意,冒泡排序对于大规模数据不是最优的选择,因为它的时间复杂度是O(n^2),但对于小规模数据或者基本学习排序算法来说,它是一个直观易懂的例子。
阅读全文