开发者社区> 问答> 正文

选择排序算法与冒泡排序算法有何异同啊?

初看这两种算法,不知道有何不同。请各位指点一二。

展开
收起
知与谁同 2018-07-19 15:21:44 1840 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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载