shellsort.h

来自「有各种排序算法」· C头文件 代码 · 共 18 行

H
18
字号
#include"DataList.h"
template<class T>
void ShellSort (dataList<T>& L,const int left,const int right)
{
	int i, j, gap = right-left+1;	//增量运算前的初值
	Element<T> temp;
    do {
        gap = gap/3+1;			//求下一增量值
        for (i = left+gap; i <= right; i++)
            if (L[i] < L[i-gap]) {		//逆序,间隔gap
                temp = L[i];  j = i-gap;
                do {
                    L[j+gap] = L[j];  j = j-gap;
                } while (j >= left && temp < L[j]);
                L[j+gap] = temp;	//将vector[i]回送
            }
    } while (gap > 1);
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?