#include<stdio.h>
//希尔排序 先分两半,对比前一半后一半,再分一半,再对比前一段和后一段 ,直到不能再分
int main ()
{
int nums[10]={15,19,259,28,314,858,192,51,169,39} ;
int length=10;
int sort =length;
int temp=0;
while(length/=2)
{
for(int i=0;i<10-length;i++)
{
if(nums[i]>nums[i+length])
{
temp=nums[i];
nums[i]=nums[i+length];
nums[i+length]=temp;
}
}
}
for(int t=0;t<sort;t++)
printf("%d ",nums[t]);
}
时间复杂度O(n^2)
空间复杂度O(1)