1, 直接插入排序:空间复杂度:O(1)
时间复杂度:
最好:O( n)
最差:O( n^2)
最坏情况下的比较次数: i=2 到 i=n ,i求和
移动次数为:i=2 到 i = n (i+1)求和
是一个稳定的算法,适用于顺序存储和链式存储。
2, 折半插入排序:
时间复杂度:O(n^2);
比较次数为 :O(n logn); 与待排序表的初始状态无关,仅取决于表中的元素个数n,而元素的移动次数并未改变,它依赖于排序表的初始状态。 只适用于顺序存储。
是一种稳定的排序算法
3, 希尔排序(缩小增量排序)
算法思想:1,先取一个小于n的步长d1 然后把表中的全部记录分成d1组,所有距离为d1的倍数的记录放到同一组,在各组中进行插入排序。然后取第二个步长d2,重复操作。直到d取1
时停止。(希尔提出的方法是:d1 = n/2,往后的d取前一个d的一半取下届);
空间效率:O(1);
时间效率:O( n^2 );
是一种不稳定的排序算法。
仅适用于线性表为顺序存储的情况。
直接插入排序,折半插入排序,和希尔排序之间的对比
猜你喜欢
转载自blog.csdn.net/qq_43964318/article/details/108340556
今日推荐
周排行