码迷,mamicode.com
首页 > 编程语言 > 详细

c语言 希尔排序简化函数版

时间:2020-06-13 23:21:55      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:str   pre   while   shel   根据   建议   博客   排序   include   

希尔排序和插入排序很类似;

你可以看一下我上一个博客写的插入排序,这两个很类似,我的这个希尔排序也是根据插入排序改编而成

如果你看过希尔排序的概念以后仍然不是很懂是如何实现的,很建议你看一下哔哩哔哩里一个关于希尔排序改编的舞蹈

你反复看几遍绝对会在脑海里形成很强烈的印象,因为实在是太魔性了

苏格兰改编的希尔排序舞蹈

下面是我自己写的希尔排序的c语言表示代码

#include<stdio.h>
void shell(int a[],int n,int gap)
{
    int key=a[n];
    while(n>=gap&&a[n-gap]>key)
    {
        a[n]=a[n-gap];
        n-=gap;
    }
    a[n]=key;
}
void shellSort(int a[],int n)
{
    for(int gap=n/2;gap>0;gap/=2)
        for(int i=gap;i<n;i++)
            shell(a,i,gap);
}
int main(){
    int a[]={8,6,1,4,2,3,5,7};
    int n=8;
    shellSort(a, n);
    for(int i=0;i<n;i++)
        printf("%d\t",a[i]);
    
}

 

c语言 希尔排序简化函数版

标签:str   pre   while   shel   根据   建议   博客   排序   include   

原文地址:https://www.cnblogs.com/oldfish123/p/13121900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!