模板——Shell Sort

Shell Sort

希尔排序模板

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Shell(int st[15], int len, int d)
{
    int i,j;
    for(i=d+1; i<=len; i++)
    {
        if(st[i]<st[i-d])
        {
            st[0] = st[i];
            j = i-d;
            while(j>0 && st[0]<st[j])
            {
                st[j+d] = st[j];
                j = j-d;
            }
            st[j+d] = st[0];
        }
    }
}
int main()
{
    /*在此定义输入10个数字*/
    int seq[15];
    int increment = 10,len = 10, i;
    for(i=1; i<=10; i++)
    {
        scanf("%d",&seq[i]);
    }
    while(increment>1)
    {
        increment = (increment+1)/3;
        Shell(seq, len, increment);
    }
    for(i=1; i<=10; i++)
    {
        printf("%d ",seq[i]);
    }
    printf("\n");
    return 0;
}


 

你可能感兴趣的:(模板——Shell Sort)