#include "stdafx.h"
#include <iostream>
#define DATA_SIZE 14
void shellSort(int data[], int iDataSize)
{
int iTemp = 0;
int j = 0;
int iGap = iDataSize;
do
{
iGap = iGap / 3 + 1;
for ( int i = iGap; i < iDataSize; i++ )
{
if ( data[i] < data[i - iGap] )
{
iTemp = data[i];
for ( j = i - iGap; data[j] > iTemp; j -= iGap )
{
data[j + iGap] = data[j];
}
data[j + iGap] = iTemp;
}
}
} while ( iGap > 1 );
}
void printResult(int data[], int iDataSize)
{
printf("排序后的结果是:");
for ( int i = 0; i < iDataSize; i++)
{
printf("%d ", data[i]);
}
printf("\n\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
int data[DATA_SIZE] = {3,6,1,4,2,5,9,33,8,1,22,32,11,18};
shellSort(data, DATA_SIZE);
printResult(data, DATA_SIZE);
getchar();
return 0;
}