希尔排序(C语言)

#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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容