现在的位置: 首页 > 综合 > 正文

插入排序——直接插入排序和希尔排序,C++代码实现

2013年03月22日 ⁄ 综合 ⁄ 共 1400字 ⁄ 字号 评论关闭

 

希尔排序基本思想是:通过分组来,来对各个组内的元素进行排序,随着分组的逐渐粗化,使得整个待排序记录由无序到基本有序,再到有序的过程。

这里需要注意这两种插入排序算法各自的优点和缺点:

直接插入排序,由程序可知他的算法时间复杂度为O(n²),空间复杂度是O(1),且是一种稳定的排序算法(即关键字相同的记录,在排序后,相对彼此的顺序没有改变),它适用于待排序记录按关键字基本有序或是待排序记录较少的情况,在这些情况下,效率较高。

希尔排序,时间复杂度是O(nlog2n),空间复杂度是O(1),是一种不稳定的算法(因为在分组时可能把两个关键字相同的记录分到不同的组,这样在排序时两者就不能比较了),它的性能在待排序的记录有较多时能得到充分的发挥。

抱歉!评论已关闭.