排序算法-希尔排序
#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;
}

浙公网安备 33010602011771号