选择排序法和冒泡排序法

如要将数组:[32,84,16,5,8]   按升序排列成:[5,8,16,32,84]


选择排序:

     第一趟:将第一个数与第二个数相比较;若第二个数较小,则第一个数与第二个数交换,否则不变;
     再将第一个数与第三个数比较,若第三个数较小,则交换,否则不变;
     依此类推,则第一趟排序时各数据所处位置应是:
初始:32,84,16,5,8
第一次比较后:32,84,16,5,8
(注:第一次比较后,因84>32,故不变)
第二次比较后:16,84,32,5,8
(注:第二次比较后,因16<32,故交换,此时处于第一位置的16即为新的第一个数)
第三次比较后:5,84,32,16,8
(注:第三次比较时,16是第一位数,与第四位数5相比较)
第四次比较后:5,84,32,16,8
(注:第四次比较后,因8>5,故不变)


第二趟排序时,因首位数字5己是最小数,且排在第一位,就可以不再管它了,就只需对数组:[84,32,16,8]  进行排序,具体过程同上面一样。


冒泡排序:

     首先将处于第一位置的数与处第二位置的数相比较,若第二位置的数较小,则交换,否则不变;此处,因84>32,故不变。
     然后将第二位置的数与第三位置的数比较,若后者较小,则交换,否则不变;此例中,因16<84,故交换;    交换后,84即为新的第三位置数。
     之后,再将第三位置的数与第四位置的数比较,若后者小,则交换,否则不变;此例中,因5<84,故交换;   交换后,84为新的第四位置数。
     依此类推,将第四位置数与第五位置数相比较,即完成了第一趟排序。

第一趟排序过程中各数据位置:
初始:32,84,16,5,8
第一次比较后:32,84,16,5,8
第二次比较后:32,16,84,5,8
第三次比较后:32,16,5,84,8
第四次比较后:32,16,5,8,84

第二趟排序与第一趟排序类似,只是所需排的数组是:[32,16,5,8]     因最后一个数字己经是最大,且排在最后,故不再管它。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值