当前位置:首页C语言 > 正文

C语言冒泡排序法

作者:野牛程序员:2023-08-23 11:58:01C语言阅读 2660

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数组,比较相邻的元素,如果顺序错误就交换它们,直到整个数组排序完成。冒泡排序的每一轮遍历都会将当前未排序部分的最大(或最小)元素移动到末尾(或开头)。

以下是一个使用 C 语言实现冒泡排序的示例代码:

#include <stdio.h>

// 交换两个元素的值
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 冒泡排序函数
void bubbleSort(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(&arr[j], &arr[j + 1]);
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int size = sizeof(arr) / sizeof(arr[0]);

    printf("未排序数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\\n");

    bubbleSort(arr, size);

    printf("冒泡排序后数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\\n");

    return 0;
}

在这段代码中,swap 函数用于交换数组中两个元素的值。bubbleSort 函数是主要的冒泡排序函数,它通过多轮遍历,将较大的元素逐步移到数组末尾,从而实现排序。

冒泡排序的时间复杂度为 O(n^2),其中 n 是数组的大小。尽管冒泡排序的性能相对较差,但它简单易懂,是一种经典的排序算法。在实际应用中,它通常不适用于大规模数据集合,但可以用于教学和了解排序算法的基本原理。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击