谢尔排序

//谢尔排序又称缩小增量排序法(对直接插入法的改进)
#include<iostream>
using namespace std;
void ShellSort(int k[],int n)
{
    int i,j,flag,gap=n;
    int temp;
    while(gap>1)
    {
        gap=gap/2;
        do{
            flag=0;
            for(i=0;i<=n-gap;i++)
            {
                j=i+gap;
                if(k[i]>k[j])
                {
                    temp=k[i];
                    k[i]=k[j];
                    k[j]=temp;
                    flag=1;
                }
            }
        }while(flag!=0);
    }
}
void main()
{
    int k[10],i;
    for(i=0;i<10;i++)
        scanf("%d",&k[i]);
    ShellSort(k,10);
    for(i=0;i<10;i++)
        printf("%d ",k[i]);
    printf("\n");
}
原文地址:https://www.cnblogs.com/heqinghui/p/2678129.html