📜  c语言中询问用户输入的冒泡排序 - C编程语言(1)

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

冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换的元素,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

代码实现

以下是使用 C 语言编写的冒泡排序程序:

#include <stdio.h>

void bubble_sort(int arr[], int len) {
    int i, j, temp;
    for (i = 0; i < len - 1; i++) {
        for (j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main() {
    int i, len;
    printf("请输入要排序的数组长度:");
    scanf("%d", &len);
    int arr[len];
    printf("请输入要排序的数组元素:\n");
    for (i = 0; i < len; i++) {
        scanf("%d", &arr[i]);
    }
    bubble_sort(arr, len);
    printf("排序后的数组:\n");
    for (i = 0; i < len; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}

上述代码中,我们先通过 scanf() 函数询问用户输入要排序的数组长度,然后通过 for 循环询问用户输入要排序的数组元素。接着,调用 bubble_sort() 函数进行排序,最后打印出排序后的数组。

解读代码

首先,在上述代码中,我们使用了 void 关键字来表明 bubble_sort() 函数不返回任何值。该函数接受两个参数:一个整数数组和一个整数。len 表示数组的长度。内部实现中,我们使用了两个循环嵌套来进行数组元素的比较和交换。

其次,我们通过 scanf() 函数取得用户输入的数组长度和元素,并存储到一个数组中。

最后,我们调用 bubble_sort() 函数对数组进行排序,并通过 printf() 函数将排序后的数组打印到控制台上。

总结

本文介绍了冒泡排序算法的实现,以及如何使用 C 语言编写排序程序。如果你对 C 语言算法有兴趣的话,可以尝试使用其他排序算法完成类似的程序实现。