#include <iostream>
using namespace std;
void ShellSort(int data[],int n)
{
{
{
int tmp = data[j];
{
data[k+i] = data[k];
}
}
}
int main()
{
int num[10]={2,5,1,3,8,7,4,9,6,0};
ShellSort(num,10);
for(int i=0;i<10;i++)
cout<<num[i]<<" ";
cout<<endl;
return 1;
}
using namespace std;
void ShellSort(int data[],int n)
{
int i;
//这里的初始增量是n/2,以后增量每次缩小一倍,其实增量的传入可以放入一个增量数组,依次存放每次增量
{
int j;
//从每个子序列的第二个数据开始进行直接插入排序,i处为每个子序列的第二个数据
{
int tmp = data[j];
int k;
//子序列从倒数第二个元素开始,如果当前元素存在并且倒数第一个元素小于当前元素,则将当前元素后移
{
data[k+i] = data[k];
}
//k+i即为倒数第一个元素的位置
}
}
}
int main()
{
int num[10]={2,5,1,3,8,7,4,9,6,0};
ShellSort(num,10);
for(int i=0;i<10;i++)
cout<<num[i]<<" ";
cout<<endl;
return 1;
}