#include<iostream>
using namespace std;
void print(int *arr,int length)
{
for(int i = 0;i <
length;i++)
{
cout<<arr[i]<<"\t";
}
cout<<"\n";
}
void sort(int *arr,int length)
{
int step = 5;
int temp
= 0;
while(step > 0)
{
for(int i = 0 ; i
< length-step;i++)
{
temp =
arr[i];
while(i-step >= 0 && temp <
arr[i-step])
{
arr[i] =
arr[i-step];
i
-=step;
}
arr[i] =
temp;
}
step -= 2;
}
}
int main()
{
int arr[] = {8,5,7,4,6,2,3,1,9};
int size =
sizeof(arr)/sizeof(int);
cout<<"排序前数组元素为:"<<endl;
print(arr,size);
sort(arr,size);
cout<<"排序后数组元素为:"<<endl;
print(arr,size);
return
0;
}
原文:http://www.cnblogs.com/WangYinlong/p/3549106.html