温馨提示×

C语言冒泡升序排序怎么实现

小亿
85
2024-01-03 11:38:52
栏目: 编程语言

在C语言中,可以使用冒泡排序算法来对数组进行升序排序。冒泡排序的基本思想是重复地交换相邻的元素,使较大的元素逐渐向右移动到数组的末尾。

以下是使用冒泡排序算法实现升序排序的示例代码:

#include <stdio.h>

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

    int i, j;

    for (i = 0; i < n-1; i++) {

        // 每次遍历都将最大的元素移动到右端

        for (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;

            }

        }

    }

}

int main() {

    int arr[] = {5, 2, 8, 12, 3};

    int n = sizeof(arr) / sizeof(arr[0]);

    printf("原始数组: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    bubbleSort(arr, n);

    printf("\n排序后的数组: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    return 0;

}

输出结果:

原始数组: 5 2 8 12 3

排序后的数组: 2 3 5 8 12

在上述示例代码中,`bubbleSort()`函数接受一个整数数组和数组的大小作为参数。它使用两个嵌套的循环来遍历数组,并将较大的元素向右移动。最后,`main()`函数通过调用`bubbleSort()`函数对数组进行排序,并输出排序后的结果。

请注意,在实际应用中,冒泡排序算法可能不是最优的选择,因为它的时间复杂度为O(n^2),在处理大型数据集时效率较低。更高效的排序算法如快速排序或归并排序可以用于替代冒泡排序。

0