📜  气泡排序的C程序(1)

📅  最后修改于: 2023-12-03 15:26:55.065000             🧑  作者: Mango

气泡排序的C程序

气泡排序(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

这说明程序可以正确地对一个不规则的整数数组进行气泡排序。

总结

气泡排序是一种简单但效率不高的排序算法,在实际应用中可能不适合处理大规模数据。此外,气泡排序并不是一种稳定的排序算法,即它可以改变相等元素的相对位置。因此,在实际使用时,建议选择其他更为高效的排序算法,例如快速排序、归并排序等。