C语言程序设计电子教案任正云 ch5.PPTVIP

  • 5
  • 0
  • 约1.88万字
  • 约 74页
  • 2017-08-20 发布于未知
  • 举报
第3章 计算机网络体系结构 C语言程序设计 主编 任正云 中国水利水电出版社 5.4 数组应用实例 基本思想:允许第一次跳过较大的间隔去和后面的元素进行比较,当接近目的时,再跳过较小的间隔和后面的元素进行比较,直到间隔为1才进行相邻元素的比较。每次跳过多大的间隔呢?通常采用一种简单的方案:开始时跳过的间隔是数组长度的一半,以后再取上次间隔的一半。 2.Shell排序 【例5.26】用Shell排序法对数据排序。 5.4 数组应用实例 以10个元素的数组为例作详细的图解说明。10个元素的跳步共3种:10/2=5,5/2=2,2/2=1,即跳步jump可以取值5、2、1。 原始数据:9 8 1 7 6 3 4 5 4 1 5.4 数组应用实例 最后一行是在本跳步下比较一遍之后的结果,但里面仍有逆序现象,必须在当前跳步下再重复一遍同样的操作,然后继续检查,直到当前跳步没有逆序为止。最后的结果为: 1 1 3 4 4 5 6 7 8 9 5.4 数组应用实例 从上面的排序可以看出,Shell排序需要三重循环;最外层循环控制跳步的大小;最内层循环执行扫描、比较和交换;中间一层的循环控制当前跳步

文档评论(0)

1亿VIP精品文档

相关文档