冒泡排序法是一种基本的排序算法,它通过多次交换相邻的元素来实现排序。以下是C语言的冒泡排序法实现:

#include <stdio.h>

void bubble_sort(int arr[], int len)
{
    int i, j;
    for (i = 0; i < len - 1; i++) {
        for (j = 0; j < len - 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, 4, 6, 1, 3 };
    int len = sizeof(arr) / sizeof(int);
    bubble_sort(arr, len);
    int i;
    for (i = 0; i < len; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

在这个实现中,我们首先定义了一个函数bubble_sort,它接受一个整数数组arr和数组的长度len作为参数。在函数内部,我们使用两个嵌套的循环来遍历数组并比较相邻的元素。如果前面的元素比后面的元素大,我们就交换它们的位置。这样,每次内循环结束后,数组中最大的元素就会被移到最后一个位置。外循环控制了内循环的遍历次数,因为每次内循环结束后,最后一个元素已经是最大的了,所以我们可以将它排除在外。

main函数中,我们定义了一个整数数组arr,并使用sizeof运算符和sizeof(int)计算出数组的长度。然后,我们调用bubble_sort函数来对数组进行排序,并使用一个循环打印出排序后的结果。

注意,这个实现没有对排序算法进行优化,所以它的时间复杂度是O(n^2),如果数据量很大,它的效率会比较低。实际应用中,我们可以使用更高效的排序算法来处理大规模数据。

c语言的冒泡排序法

原文地址: https://www.cveoy.top/t/topic/bwq0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录