算法二 冒泡排序

   冒泡排序指的是相邻两项两两相比,前一项如果比后一项大得话,就交换位置,然后依次与后面的数相比,直到遇到后一项比自己小。

代码如下

#include<stdio.h>
void px(int brr[],int m)
{
    int i = 0;
    for (i = 0; i < m-1; i++)//此次循环次数不会大于总个数,i从0开始所以要减1,有几个数就得循环几趟
    {
        int j = 0;
        int find = 1;//设定如果有序就为1
        for (j = 0; j < m - i - 1; j++)//此次循环是两两相比要几次,首先上一次循环要m-1次。其次每次对比都不会和上一个数进行对比交换位置,因此要减j,相当于已经排好序的数就不用去动它了
        {
            if (brr[j] > brr[j+1])
            {
                find = 0;//每交换一次就将find置为零
                int tam = brr[j];
                brr[j] = brr[j + 1];
                brr[j + 1] = tam;//交换临时变量的语句
                
            }
            
        }
        if (find == 1)
        {
            break;//如果后面的数字还没循环完就已经有序了就不用接下去执行没完成的循环了,简化了操作
        }
    }
}
int main()
{
    int i = 0;
    int arr[] = {3,1,7,5,8,9,0,2,4,6};
    int ret = sizeof(arr) / sizeof(arr[0]);//计算出整个数组的大小
    px(arr, ret);
    for (i = 0; i < ret; i++)
    {
        printf("%d ", arr[i]);
    }
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值