/*
* =====================================================================================
*
* Filename: shellSort.c
*
* Description: 希尔排序
*
* Version: 1.0
* Created: 2016年11月17日 14时46分39秒
* Revision: none
* Compiler: gcc
*
* Author: guoqingshan (ackevil), wyguoqingshan@163.com
* Organization:
*
* =====================================================================================
*/
#include <stdlib.h>
#include <stdio.h>
void shellSort(int a[],int len){
//2的倍数为分组
//
int i,j,temp;
int h=len/2;
while(h>=1){
for(i=h;i<len;i++){
for(j=i;j>=h;j-=h){
if(a[j]<a[j-h]){
temp=a[j];
a[j]=a[j-h];
a[j-h]=temp;
}else{
break;
}
}
}
h=h/2;
}
}
int main(){
int a[10]={10,2,6,4,9,1,14,5,12,9};
printf("排序前\n");
int i;
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
shellSort(a,10);
printf("\n排序后\n");
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}