排序(冒泡排序、选择排序)

冒泡排序

每一轮选出一个最大的排最后面

依次排序

排 n-1 轮

每一轮,j<n-1-i;

num[ 5 ] = { 3        9        1        6        2 };

-        -        -        -        9

-        -        -        6        9

-        -        3       6        9

-        2        3      6        9  (已经能确定)

1       2        3      6        9

for(int i=0; i<n-1; i++)
{
    for(int j=0; j<n-1-i; j++)
    {
        if(nums[j]>nums[j+1])
        {
            int temp = nums[j];
            nums[j] = nums[j+1];
            nums[j+1] = temp;
        }
    }
}

.

选择排序

每一轮,设置当前数字为最小值,

依次与它后面数字比较,选出最小的数字放在当前位置,循环(轮)

num[ 5 ] = { 3        9        1        6        2 };

1        -         -         -         -

1        2        -         -         -

1        2        3        -         -

1        2        3        6        -        (已经能确定)

1        2        3        6        9

for(int i=0; i<n; i++)
{
    int min = i;
    
    //当前数字i(min)与后面数字比较,找出最小数字
    for(int j=i+1; j<n; j++)
    {
        if(nums[min]>nums[j])
        {
            min = j;
        }
    }
    //选出了最小数字min

    //当前假设最小数字与min不一样,交换
    if(i!= min)
    {
        int temp = nums[i];
        nums[i] = nums[min];
        nums[min] = nums[i];
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值