插入排序之直接插入排序和希尔排序
Posted 我的小杯酒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序之直接插入排序和希尔排序相关的知识,希望对你有一定的参考价值。
1.插入排序----直接插入排序:
基本思想:
将一条记录插入到已排好序的有序表当中,从而得到一个新的、记录数增加1的有序表。
也就是,先将序列的第1个记录看成是一个有序的子序列, 然后从第2个记录逐个进行插入,从后向前顺序比较,直至整个序列有序为止。
要点:设立哨兵,作为临时存储和判断数组边界之用。
算法实现:
效率:
时间复杂度:O(n^2).
空间复杂度:O(1).
如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
2.插入排序----希尔排序
基本思想:
希尔排序又叫“缩小增量排序”。
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。
这是针对直接插入排序,从“减少记录个数”和“序列基本有序”对其进行改进的一种排序。
算法实现:
效率:
希尔排序方法是一个不稳定的排序方法.
空间复杂度:O(1).
以上是关于插入排序之直接插入排序和希尔排序的主要内容,如果未能解决你的问题,请参考以下文章