冒泡排序和选择排序

冒泡排序和选择排序是排序算法中比较简单和容易实现的算法。
冒泡排序:每一次排序过程,通过相邻元素的交换,将当前没有排好序的最大(小)移到数组的最右(左)端。

选择排序:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右端(左)的元素交换,循环这个过程即可实现对整个数组排序。
选择排序的平均时间复杂度比冒泡排序稍高

区别:在交换的方式上

冒泡算法:每次比较如果发现较小的元素在后面,就交换两个相邻的元素

选择排序:先不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。

所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数一样的

例如: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]开始重复以上步骤。

虽然差不多,但是请注意:两者的比较方法是右差别的,一个事依次比下来,一个是俩俩比较。

冒泡排序和选择排序

相关推荐