c语言 希尔排序简化函数版
希尔排序和插入排序很类似;
你可以看一下我上一个博客写的插入排序,这两个很类似,我的这个希尔排序也是根据插入排序改编而成
如果你看过希尔排序的概念以后仍然不是很懂是如何实现的,很建议你看一下哔哩哔哩里一个关于希尔排序改编的舞蹈
你反复看几遍绝对会在脑海里形成很强烈的印象,因为实在是太魔性了
下面是我自己写的希尔排序的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]); }
相关推荐
Joymine 2020-06-16
数据与算法之美 2020-05-27
Ghero 2020-04-17
Happyunlimited 2020-02-17
yuanran0 2019-12-09
niushao 2019-12-02
yuanran0 2019-12-01
waitwolf 2019-10-28
seekerhit 2019-10-20
wushichao0 2019-09-06
earthhouge 2015-12-26
YUAN 2019-07-01
燕哥带你学算法 2014-12-04
风和日丽 2019-06-26
Broadview 2019-06-26
wonner 2012-12-10