希尔排序(C语言)

2019-02-15  本文已影响0人  奋斗live
#include<stdio.h>

void Sort(int arr[],int length){
    int i,j,temp,increment;
    for(increment = length/2;increment>0;increment=increment/2){
        for(i=increment;i<length;i++){
            temp = arr[i];
            for(j=i-increment;j>=0&&temp<arr[j];j=j-increment){
                arr[j+increment] = arr[j];
            }
            arr[j+increment] = temp;
        }
    }
}

int main(){
    printf("希尔排序:\n");
    int i,j;
    int arr[] = {5, 18, 151, 138, 160, 63, 174, 169, 79, 200};
    printf("排序前:\n");
    for(i=0;i<10;i++){
        printf("%d ",arr[i]);
    }
    Sort(arr,10);
    printf("排序后:\n");
    for(i=0;i<10;i++){
        printf("%d ",arr[i]);
    }
    printf("\n");
}

结果如下图


image.png
上一篇 下一篇

猜你喜欢

热点阅读