美文网首页
排序算法 - 1 (Selection & Insertion)

排序算法 - 1 (Selection & Insertion)

作者: 荒剑离 | 来源:发表于2020-02-17 21:00 被阅读0次

对于排序算法的时间效率,一般可以从比较次数(compares)和交换次数(exchanges)这两个指标上来综合考虑。

选择排序

核心思想是每次在剩余的(n-k)个元素中,找到最小的那个,然后与数组第k位元素交换(如果不相同)。之所以叫选择排序,就因为算法的每次迭代都是为了挑选出剩余元素中最小的那个元素。

特点有二:

  1. 输入不敏感;
  2. 交换次数是最少。
选择排序算法

插入排序

核心思想是每次将第k个元素插入到前k-1个已排好序的元素中一个合适位置m,并将原来处在[m,k-1]位置的元素均向右移动一位。

特点有二:

  1. 输入敏感,排序已经有一定顺序的数组会比排序完全随机的数组要快。
  2. 面对部分排序(partially sorted)的数组,插入排序的速度表现很可能会是最好的排序算法:(1)一个数组其元素离其排好序后的最终位置并不远;(2)一个小数组拼在一个大的已排好序的数组之后;(3)一个数组只有少量的元素不在其合适的位置上。
插入排序算法

相关文章

网友评论

      本文标题:排序算法 - 1 (Selection & Insertion)

      本文链接:https://www.haomeiwen.com/subject/tkuifhtx.html