每日一题希尔排序的实现

Posted 计算机考研说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题希尔排序的实现相关的知识,希望对你有一定的参考价值。


希尔排序的实现:



#include <stdio.h>

#include <stdlib.h>

void ShellSort(int *k,int n)

{

    int i,j,temp,gap=n;

    do

    {

        gap=gap/3+1;

        for(i=gap;i<n;i++)

        {

            if(k[i]<k[i-gap])

            {

                temp=k[i];

                for(j=i-gap;k[j]>temp;j-=gap)

                {

                    k[j+gap]=k[j];

                }

                k[j+gap]=temp;

            }

        }

    }while(gap>1);

 

}

int main()

{

    int i,a[10]={5,2,6,0,3,9,1,7,4,8};

    ShellSort(a,10);

    printf("排序后的结果是:");

    for(i=0;i<10;i++)

    {

        printf("%d  ",a[i]);

    }

    printf("\n\n");

    return 0;

}



以上是关于每日一题希尔排序的实现的主要内容,如果未能解决你的问题,请参考以下文章

数据结构每日一题

希尔排序的介绍和希尔排序基本思想以及代码实现

希尔排序--改良版插入排序

❤️数据结构入门❤️(4 - 8)- 希尔排序

java方式实现希尔排序

不得不知的排序四:希尔排序