一、希尔排序的步骤
1、选定一个增量h,按h作为分组的依据,对数据进行分组
2、对分好组的每一组数据完成插入排序
3、减小增量,最小为1,重复第2步
二、增量h的选定
h初始值的选定规则:
int h = 1;
//计算h的初始值,num为数组的元素个数
while (h < num / 2)
{
h = 2 * h + 1;
}
h的循环规则
h = h/2;
三、代码和运行结果:
#include <iostream>
using namespace std;
void shell_sort(int arry[], int num)
{
int h = 1;
//计算h的初始值
while (h < num / 2)
{
h = 2 * h + 1;
}
cout << "h=" << h <<