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

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

气泡排序的C程序介绍

什么是气泡排序?

气泡排序(英语:Bubble Sort)是一种简单的排序算法,也是一种稳定的排序算法。排序时,算法会重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,因为此时已经达到了完全排序的状态。

C程序实现
#include <stdio.h>

int main()
{
    int data[10] = {99, 67, 88, 22, 34, 56, 92, 10, 67, 45};
    int temp, i, j;

    // 冒泡排序
    for (i = 0; i < 9; i++)
    {
        for (j = 0; j < 9 - i; j++)
        {
            if (data[j] > data[j + 1])
            {
                temp = data[j];
                data[j] = data[j + 1];
                data[j + 1] = temp;
            }
        }
    }
    
    // 输出排序后的数组
    for (i = 0; i < 10; i++)
    {
        printf("%d ", data[i]);
    }

    return 0;
}
代码解析

以上是一个基本的气泡排序的C程序。我们来看一下程序的结构和具体实现:

  1. 首先,我们定义了一个整型数组data,并赋值为10个元素的随机数列。

  2. 然后,我们定义了三个整型变量tempij。其中temp用来交换数列中两个元素的值,i用于控制循环次数,j用于比较相邻两个元素的大小并进行交换。

  3. 接下来的两个for循环是实现冒泡排序的核心代码。外层循环定义了需要进行比较的次数,内层循环则用来比较相邻两个元素的大小并进行交换。我们通过比较data[j]data[j+1]的值,在必要的情况下交换两个元素的位置。经过多次循环后,最大的元素将被移动到数列的末尾。

  4. 最后,我们用一个for循环来输出排序后的数组data。结果应该为升序排列的数列。

总结

方便起见,我们在程序中直接定义了随机数列。在实际应用中,我们可能需要使用输入函数scanf()来获取用户输入,或者从文件中读取数列数据。

气泡排序是一种简单的排序算法,但是在大规模数据处理上可能效率不高。如果您有更高的需求,可以探索其他的复杂度更低的算法,例如快速排序或归并排序。