当前位置: 首页 > news >正文

湖北武汉网站建设演艺电商运营的基本内容

湖北武汉网站建设演艺,电商运营的基本内容,0基础1小时网站建设教程,海报设计制作平台每一本数据结构和算法的教科书中,都不厌其烦的介绍了排序算法。不厌其烦的介绍10余种不同的排序。那么实际编程中用得到那么多排序算法吗?当然用不到。那么为什么全世界的教科书都这么写呢?显然是醉翁之意不在酒。 数组,是每个编…

每一本数据结构和算法的教科书中,都不厌其烦的介绍了排序算法。不厌其烦的介绍10余种不同的排序。那么实际编程中用得到那么多排序算法吗?当然用不到。那么为什么全世界的教科书都这么写呢?显然是醉翁之意不在酒。

数组,是每个编程语言中最基本最简单的数据结构。然而算法书告诉你,只要对它施加任何一种魔法规则,它立刻就分化出无数精细微妙的次结构。而这些次结构的拼装组合,又转化成最简单的数组结构。

直接上代码。注意以下展示的例子,为了揭示基本原理,都没有进行优化。读者可以对照算法书,一步一步观看它的对应的实际代码。因此具体原理这里就省略了。

首先是插入排序:

func insertsort(a[], n)
{for(i=1; i<n; i++) {t =a[i];j=i-1;while(j>=0) {if(a[j]>t) {a[j+1]=a[j];}else {a[j+1]=t;goto inc1;}j--;}a[0]=t;inc1:printa(a[],n);}
}

希尔排序是在插入排序的基础上,先用一些gap对数组预处理。通过这些处理,使插入排序中挪动数组的距离缩短,从而降低开销。如果一上来gap就取1,直接退化成插入排序:

func shellsort(a[], n)
{gap=n;for(gap/=2;gap>0;gap/=2) {for(i=1; i<n; i++) {t =a[i];j=i-gap;while(j>=0) {if(a[j]>t) {a[j+gap]=a[j];}else {break;}j-=gap;}a[j+gap]=t;}printa(a[],n);}
}

归并排序的gap是另一种用法,它通过gap分段,所以它的子数组的元素是挨着的。不像shell排序,子数组是跳开的。这些,正是算法书所告诉你的:你是程序员,每一个量,你都可以动。

func mergesort(a[], n)
{for(gap=1; gap<n; gap+=gap) {print "gap=",gap;m=0; j=0;next:i=j; j=i+gap;if(j>=n) goto copy;igap=i+gap;jgap=j+gap;if(jgap>n) jgap=n;while(i<igap&&j<jgap) {if(a[i]<=a[j]) {b[m++]=a[i++];}else {b[m++]=a[j++];}}if(i<igap){while(i<igap) b[m++]=a[i++];}else {while(j<jgap) b[m++]=a[j++];}if(j<n) goto next;if(m!=n) exception "error", m,n;
copy:copya(a[], b[], n); printa(a[], n);}
}

下面是例子的一点运行结果,感觉用解释程序是要比编译器省一点脑子:
func reset(a[]) {
a[] = {57,13,31, 18, 19, 9, 14, 71, 11,17,69,
7,3,2, 8, 97, 12, 4, 25, 1,21, 93};
}

func printa(array[], n)
{
while(i<n) print array[i++], “\b”;
print “END”;
}

func copya(array[], b[], n)
{
for(i=0; i<n; i++) array[i]=b[i];
}

reset(array[]);
for(i=0; array[i]; i++);
n=i;

insertsort(array[], n);
reset(array[]);
shellsort(array[], n);
reset(array[]);
mergesort(array[], n);

reset(array[]);
for(i=0; array[i]; i++);
n=i;

insertsort(array[], n);
13 57 31 18 19 9 14 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
13 31 57 18 19 9 14 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
13 18 31 57 19 9 14 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
13 18 19 31 57 9 14 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
9 13 18 19 31 57 14 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
9 13 14 18 19 31 57 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
9 13 14 18 19 31 57 71 11 17 69 7 3 2 8 97 12 4 25 1 21 93 END
9 11 13 14 18 19 31 57 71 17 69 7 3 2 8 97 12 4 25 1 21 93 END
9 11 13 14 17 18 19 31 57 71 69 7 3 2 8 97 12 4 25 1 21 93 END
9 11 13 14 17 18 19 31 57 69 71 7 3 2 8 97 12 4 25 1 21 93 END
7 9 11 13 14 17 18 19 31 57 69 71 3 2 8 97 12 4 25 1 21 93 END
3 7 9 11 13 14 17 18 19 31 57 69 71 2 8 97 12 4 25 1 21 93 END
2 3 7 9 11 13 14 17 18 19 31 57 69 71 8 97 12 4 25 1 21 93 END
2 3 7 8 9 11 13 14 17 18 19 31 57 69 71 97 12 4 25 1 21 93 END
2 3 7 8 9 11 13 14 17 18 19 31 57 69 71 97 12 4 25 1 21 93 END
2 3 7 8 9 11 12 13 14 17 18 19 31 57 69 71 97 4 25 1 21 93 END
2 3 4 7 8 9 11 12 13 14 17 18 19 31 57 69 71 97 25 1 21 93 END
2 3 4 7 8 9 11 12 13 14 17 18 19 25 31 57 69 71 97 1 21 93 END
1 2 3 4 7 8 9 11 12 13 14 17 18 19 25 31 57 69 71 97 21 93 END
1 2 3 4 7 8 9 11 12 13 14 17 18 19 21 25 31 57 69 71 97 93 END
1 2 3 4 7 8 9 11 12 13 14 17 18 19 21 25 31 57 69 71 93 97 END
reset(array[]);
shellsort(array[], n);
7 3 2 8 19 9 4 25 1 17 69 57 13 31 18 97 12 14 71 11 21 93 END
7 3 2 1 11 9 4 13 8 17 21 12 14 31 18 69 57 25 71 19 97 93 END
2 1 4 3 7 9 8 12 11 13 14 17 18 19 21 25 57 31 71 69 97 93 END
1 2 3 4 7 8 9 11 12 13 14 17 18 19 21 25 31 57 69 71 93 97 END
reset(array[]);
mergesort(array[], n);
gap= 1
13 57 18 31 9 19 14 71 11 17 7 69 2 3 8 97 4 12 1 25 21 93 END
gap= 2
13 18 31 57 9 14 19 71 7 11 17 69 2 3 8 97 1 4 12 25 21 93 END
gap= 4
9 13 14 18 19 31 57 71 2 3 7 8 11 17 69 97 1 4 12 21 25 93 END
gap= 8
2 3 7 8 9 11 13 14 17 18 19 31 57 69 71 97 1 4 12 21 25 93 END
gap= 16
1 2 3 4 7 8 9 11 12 13 14 17 18 19 21 25 31 57 69 71 93 97 END

http://www.hkea.cn/news/497254/

相关文章:

  • 网页设计作业在线网站首页seo教程seo优化
  • 做个网站多钱域名备案查询系统
  • 饰品网站模板官网seo关键词排名系统
  • 文学网站做编辑百度笔记排名优化
  • 公司网站开发语言如何优化百度seo排名
  • 做网站较好的框架惠州百度推广排名
  • 网站建设和运营的课程推广软文发稿
  • 杭州企业网站建设方案ui培训
  • 个人站长做哪些网站好seo优化设计
  • 小白学做搭建网站软文街官方网站
  • 网站模板 可做采集站市场营销咨询
  • 家居网站建设素材天眼查询个人信息
  • 杭州专业网站排名优化交换链接的例子
  • 网站建设和数据容量整合seo的培训课程
  • 深圳 网站制作 哪家百度搜索排名优化哪家好
  • 网站运营者网址发稿平台
  • 内蒙古网站制作公司拼多多网店代运营要多少费用
  • 免费网站建设协议baike seotl
  • 做网站的好处和坏处怎么创建自己的网址
  • 兰州新区城乡建设局网站seo sem是什么职位
  • 衡水网站制作公司自媒体软文发布平台
  • 东莞圆心科技网站开发网页搜索
  • 日照网站建设价格百度推广怎么优化关键词的质量
  • 竭诚网络网站建设开发百度搜索竞价推广
  • 浙江住房和城乡建设厅报名网站下拉关键词排名
  • 银川哪里做网站百度网址名称是什么
  • 合肥公司网站建设价格低西安网络科技公司排名
  • 怎么样建设个人网站企业文化建设
  • 如何知道网站有没有备案成都seo公司
  • wordpress 艺术主题南京网络优化公司有哪些