选择排序算法与冒泡排序算法有何异同啊?
收起
知与谁同
2018-07-19 15:21:44
1846
0
3
条回答
写回答
取消
提交回答
-
例如:1 2 3 4我们分别用a[0],a[1],a[2],a[3]存储。假设从大到小排序
选择排序,是a[0]和a[1],a[2],a[3]依次比较,遇到小的就交换,这样一次下来,最大的被保存在了a[0].下次排序就从a[1]开始重复以上步骤。
冒泡排序,是a[0]和a[1]比较,小的就交换。然后a[1]和a[2]比较,小的交换。然后a[2]和a[3]比较小的就交换。这样一次下来,最大的被保存在a[0]。下次排序从a[1]开始重复以上步骤。
虽然差不多,但是请注意:两者的比较方法是右差别的,一个事依次比下来,一个是俩俩比较。
2019-07-17 22:49:24
-
冒泡的逻辑是把元素向应有的位置移动
选择是寻找特定位置所对应的元素。
冒泡最坏的情况复杂度才是O(n^2) 选择平均复杂度就是O(n^2) 但是冒泡的最坏情况处理要比选择慢。
2019-07-17 22:49:24
-
区别在于:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。
所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数是一样的。
2019-07-17 22:49:24