#include "stdafx.h"
#include<iostream>
#include<vector>
using namespace std;
void swap(int &a,int &b)
{
int tmp=b;
b=a;
a=tmp;
}
void shellInsert(vector<int> &array,int d,int num)
{
for(int i=d;i<num;i++)
{
int j=i-d;
int tmp=array[i];
while(j>=0&&array[i]>tmp)
{
array[j+d]=array[j];
j-=d;
}
if(j!=i-d)
array[j+d]=tmp;
}
}
void shellSort(vector<int> &array,int num)
{
int d=num/2;
while(d>=1)
{
shellInsert(array,d,num);
d=d/2;
}
}
#include<iostream>
#include<vector>
using namespace std;
void swap(int &a,int &b)
{
int tmp=b;
b=a;
a=tmp;
}
void shellInsert(vector<int> &array,int d,int num)
{
for(int i=d;i<num;i++)
{
int j=i-d;
int tmp=array[i];
while(j>=0&&array[i]>tmp)
{
array[j+d]=array[j];
j-=d;
}
if(j!=i-d)
array[j+d]=tmp;
}
}
void shellSort(vector<int> &array,int num)
{
int d=num/2;
while(d>=1)
{
shellInsert(array,d,num);
d=d/2;
}
}