一、原理
选择一个增量序列他t1, t2, ... , tk, 其中ti > tj, tk=1;
按增量序列个数k, 对序列进行k趟排序
每趟排序,根据对应的增量ti, 将待排序列分割成若干长度为m的子序列,分别对各子表进行直接插入排序。仅增量因子为1时,整个序列作为一个表来处理,表长度即为整个序列的长度
最佳情况: T(n) = O(n*) 最坏情况:T(n) = O(n*) 平均情况: T(n) = O(n*)
过程:(1)初始增量 gap = length / 2, 意味着整个数组被分为五组,
(2)对这5组分别进行直接插入排序,小元素被调到前面,然后缩小增量gap=5/2
(3)对上面两组进行直接插入排序,在缩小增量pag=2/2
网友评论