📅  最后修改于: 2023-12-03 14:40:25.047000             🧑  作者: Mango
冒泡排序是一种简单但效率较低的排序算法。它会多次比较相邻的元素,并交换顺序不正确的元素,直至所有元素都按照指定顺序排列好。
下面是一个使用C语言实现冒泡排序的示例程序:
#include <stdio.h>
void bubbleSort(int arr[], int n){
int i, j, temp;
for(i = 0; i < n-1; i++){
for(j = 0; j < n-i-1; j++){
if(arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main(){
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序后的数组:\n");
for(int i = 0; i < n; i++){
printf("%d ", arr[i]);
}
return 0;
}
代码中定义了两个函数:bubbleSort
和main
。其中bubbleSort
函数实现了冒泡排序算法,参数arr
是要排序的数组,参数n
是数组中元素的数量。该函数通过多次比较相邻元素的大小,将顺序不正确的元素交换位置。
主函数main
定义了一个需要排序的整型数组arr
,并获取了它的长度。调用bubbleSort
函数将数组元素排好序后,依次输出结果。
运行上述程序后,输出结果为:
排序后的数组:
1 1 2 3 3 4 5 5 5 6 9
冒泡排序的时间复杂度为$O(N^2)$,其中$N$是待排序的元素数量,因此对于大型数据集效率较低。与其它更快速的排序算法相比,如快速排序和归并排序,冒泡排序的计算成本较高。
冒泡排序虽然简单,但在实际应用中不太常用。当需要对大型数据集进行排序时,更建议使用其他排序算法。熟练掌握排序算法是每个程序员的基础技能之一。