C语言-冒泡排序

C语言-冒泡排序,第1张

思想:两两相邻的元素进行比较,并且按需要发生交换。

例如,将9876543210排为升序,则先将9和8比较后,排序为897654321,以此类推,第一趟完成后结果为876543219。

每一趟排序完成后将会有本趟最大的数字到达它应该在的位置,因此之后的每一趟都可少比较一对数字。

---------------------------------------------------------------------------------------------------------------------------------代码:

#include

void bubble_sort(int arr[], int sz)//排为升序
{
    int i, j;
    for (i = 0; i < sz - 1; i++)
//计算比较趟数
    {
        for (j = 0; j < sz - 1 - i; j++)
//每一趟内相邻两两比较
        {
            if (arr[j] > arr[j + 1])
            {
                int temp;
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main()
{
    int arr[] = {9,8,7,6,5,4,3,2,1,0};
    int sz;
    sz = sizeof(arr) / sizeof(arr[0]);
//计算数组的长度
    bubble_sort(arr, sz);//传参传入的是首元素的地址,所以sz不能在bubble函数里计算
    int i;
    for (i = 0; i < sz; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存