希尔排序

泄露秘密 提交于 2020-01-26 03:39:11
#include<stdio.h>

void insert(int a[],int gap,int i)
{
    int x=a[i],j;
    for(j=i-gap; j>0 && x<a[j]; j-=gap)
        a[j+gap]=a[j];
    a[j+gap]=x;
}
void shellsort(int a[],int n)
{
    for(int gap=n/2; gap>0; gap/=2)
        for(int i=gap; i<=n; i++)
            insert(a,gap,i);
}

int main()
{
    int a[100],n;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
        scanf("%d",&a[i]);
    shellsort(a,n);
    for(int i=1; i<=n; i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!