作业帮 > 综合 > 作业

帮忙解释在C语言中的选择排序和冒泡排序!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 04:05:35
帮忙解释在C语言中的选择排序和冒泡排序!
不太理解选择排序和冒泡排序!说的具体些!
并说一下它们之间有什么区别啊?
如要将数组:[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
(注:第二次比较后,因165,故不变)
第二趟排序时,因首位数字5己是最小数,且排在第一位,就可以不再管它了,就只需对数组:[84,32,16,8] 进行排序,具体过程同上面一样.
冒泡排序:
首先将处于第一位置的数与处第二位置的数相比较,若第二位置的数较小,则交换,否则不变;此处,因84>32,故不变.
然后将第二位置的数与第三位置的数比较,若后者较小,则交换,否则不变;此例中,因16