📅  最后修改于: 2023-12-03 15:26:55.065000             🧑  作者: Mango
气泡排序(Bubble Sort)是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。
以下是一个C语言实现的气泡排序的示例程序:
#include <stdio.h>
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
// Last i elements are already in place
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[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printf("Sorted array: ");
for (int i=0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
以上代码首先定义了一个 bubbleSort()
函数,该函数接受一个数组和数组的大小作为参数。函数内部使用了两个嵌套的 for
循环,外层循环 i
从数组的开始到倒数第二个元素,内层循环 j
从数组的开始到倒数第 i+1
个元素,每次比较相邻的两个元素并交换它们的位置。因为每一轮循环都能把当前未排序的最大元素放到数组的末尾,所以内层循环每次都可以少遍历一个元素,以提高算法效率。最后,程序使用 printf()
打印出排序后的数组的每个元素。
下面是程序运行的结果:
Sorted array: 11 12 22 25 34 64 90
这说明程序可以正确地对一个不规则的整数数组进行气泡排序。
气泡排序是一种简单但效率不高的排序算法,在实际应用中可能不适合处理大规模数据。此外,气泡排序并不是一种稳定的排序算法,即它可以改变相等元素的相对位置。因此,在实际使用时,建议选择其他更为高效的排序算法,例如快速排序、归并排序等。