欢迎来到军工软件开发人才培养基地——学到牛牛

C语言如何实现冒泡排序?

时间:2024-05-06 07:01:10 来源:学到牛牛

冒泡排序是一种简单、直观的排序算法,也是C语言中最基本的排序算法之一。它通过重复比较相邻的元素,并交换它们的位置,从而把小的元素“冒泡”到数组的前面,大的元素则“沉”到数组的后面。以下是C语言中实现冒泡排序的基本步骤:

 

企业微信截图_16788454635143.png

 

遍历数组:首先遍历数组,依次比较相邻的两个元素,如果顺序不对就进行交换。

 

交换元素:如果当前元素比后一个元素大,则交换它们的位置,这样可以将大的元素向右移动,小的元素向左移动。

 

内循环:由于每次遍历都会将未排序部分的最大值移到末尾,因此在下一次遍历时可以减少一次比较,即比较未排序部分的前n-1个元素(n为已排序部分的长度)。

 

外循环:重复以上步骤,直到数组被完全排序。

 

以下是C语言中实现冒泡排序的示例代码:

 

void bubbleSort(int arr[], int n) {

    for (int i = 0; i < n - 1; i++) { // 外循环控制轮数

        for (int j = 0; j < n - i - 1; j++) { // 内循环控制比较次数

            if (arr[j] > arr[j + 1]) { // 如果顺序不对就交换两个元素的位置

                int temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }

        }

    }

}

冒泡排序的时间复杂度为O(n^2),与数据的有序程度无关,因此不适用于大规模数据的排序。但是其实现简单、易于理解,在小规模数据的排序和教学中仍然有一定的应用价值。