每天一个小算法(Shell Sort3)

来源:互联网 发布:linux 终端关闭全屏 编辑:程序博客网 时间:2024/05/22 09:46

希尔算法自己编了一个,循环很多,很不美观,不过运行正确:

c语言实现:

#include <stdio.h>#include <stdlib.h>#define LEN 20 int main(){int d,i,j,k;int arr[]={20,19,16,17,11,12,13,18,14,15,10,9,8,7,6,5,4,3,2,1};int key;for(d=LEN/2;d>0;d--)for(i=0;i<d;i++)for(j=i+d;j<LEN;j=j+d){k=j;key=arr[j];while(k>0 && arr[k-d]>key){arr[k]=arr[k-d];k=k-d;}arr[k]=key;}for(i=0;i<LEN;i++)printf("%d\n",arr[i]);}


运行结果:


明天任务:

好好思考希尔排序的实现;想一想如何优化比较好。

0 0
原创粉丝点击