帮忙解释在C语言中的选择排序和冒泡排序!
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/17 20:03:22
帮忙解释在C语言中的选择排序和冒泡排序!
不太理解选择排序和冒泡排序!说的具体些!
并说一下它们之间有什么区别啊?
不太理解选择排序和冒泡排序!说的具体些!
并说一下它们之间有什么区别啊?
![帮忙解释在C语言中的选择排序和冒泡排序!](/uploads/image/z/2252524-4-4.jpg?t=%E5%B8%AE%E5%BF%99%E8%A7%A3%E9%87%8A%E5%9C%A8C%E8%AF%AD%E8%A8%80%E4%B8%AD%E7%9A%84%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F%E5%92%8C%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F%21)
如要将数组:[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
选择排序:
第一趟:将第一个数与第二个数相比较;若第二个数较小,则第一个数与第二个数交换,否则不变;
再将第一个数与第三个数比较,若第三个数较小,则交换,否则不变;
依此类推,则第一趟排序时各数据所处位置应是:
初始: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