labview数组排序算法

labview数组排序算法

ID:34417450

大小:25.75 KB

页数:13页

时间:2019-03-05

labview数组排序算法_第1页
labview数组排序算法_第2页
labview数组排序算法_第3页
labview数组排序算法_第4页
labview数组排序算法_第5页
资源描述:

《labview数组排序算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、18.2.2冒泡排序 “冒泡”是什么意思?湖底有时会冒出一个气泡,气泡刚在湖底时,是很小的,在向上浮的过程中,才一点地慢慢变大。学过高中的物理的人,应该不难解释这一现象。冒泡排序的过程有点类似这个过程,每前进一步,值就大一点。 排序当然有两个方向,一种是从小排到大,一种是从大排到小。大多数教科书里都讲第一种,我们也如此。这样一来,冒泡排序法就改为“沉泡法”了,较大值一点点跑到数组中的末尾。 一般教科书里也会说,冒泡排序法是人们最熟悉,及最直观的排序法,我可不这样认为。或许老外在生活中用的是这种最笨的排序法?我猜想,大家在生活中99%使用后面要讲的“选择”排序法。 冒泡排序是这么

2、一个过程(从小到大): 1、比较相邻的两个元素,如果后面的比前面小,就对调二者。反复比较,到最后两个元素。结果,最大值就跑到了最末位置。2、反复第一步,直到所有较大值都跑到靠后的位置。 看一眼例子: 2,5,1,4,3 第一遍:·比较第一对相邻元素:2,5,发现后面的5并不比2小,所以不做处理。序列保持不变:2,5,1,4,3·继续比较后两对元素:5,1,发现后面的1比前面的5小,所以对调二者。现在,序列变为:2,1,5,4,3·继续比较后两对元素:5,4……对调,于是:2,1,4,5,3·继续比较后两对元素:5,3……对调,于是:2,1,4,3,5<-----OK,现在最大值

3、5跑到最尾处了。 大泡泡“5”浮出来了,但前面的2,1,4,3,还是没有排好,没事,再来一遍,不过,由于最后一个元素肯定是最大值了,所以我们这回只排到倒数第二个即可。 第二遍:·比较第一对相邻元素:2,1,发现1比2小,所以对调:1,2,4,3,5·继续比较后两对元素:2,4,不用处理,因为后面的数比较大。序列还是:1,2,4,3,5·继续4,3,对调:1,2,3,4,5。 前面说,5不用再参加比较了。现在的序列是1,2,3,4,5。接下来,我们再来一遍: 第三遍:·比较第一对相邻元素:1,2:不用对调。……等等……有人说,现在已经是1,2,3,4,5了,完全是排好序了啊,何必

4、再来进行呢?我们确实是看出前面1,2,3也井然有序了,但对于程序来说,它只能明确地知道自己已经排好了两个数:4,5,并不知道的1,2,3凑巧也排好了。所以它必须再排两次,直到确认把3和2都已推到合适的位置上。最后剩一个数是1,因为只有一个数,没得比,所以这才宣告排序结束。 那么到底要排几遍?看一看前面的“第一遍”、“第二遍”的过程你可发现,每进行一遍,可以明确地将一个当前的最大值推到末尾,所以如果排Count个数,则应排Count遍。当然,最后一遍是空走,因为仅剩一个元素,没得比较。 下面就动手写冒泡排序法的函数。写成函数是因为我们希望这个排序法可处理任意个元素的数组。 //冒

5、泡排序(从小到大)://num:要接受排序的数组//count:该数组的元素个数voidbubble(intnum[],intcount){   inttmp;    //要排Count个数,则应排Count遍:   for(inti=0;i

6、+1];              num[j+1]=num[j];              num[j]=tmp;          }      }   }     } 注意在内层循环中j的结束值是count-i-1。要理解这段代码,明白为什么结束在count-i-1?如果你忘了如何在CB进行代码调试,如果设置断点,如何单步运行,如何观察变量的值,那么你需要“严重”复习前面有关“调试”的章节;如果你一直是高度着每一章的程序到现在,那么你可以继续下面的内容。 排序函数写出一个了,如何调试这个函数?在CB里新建一空白控制台程序,然后在主函数里,让我们写一些代码来调用这个函数,

7、并且观察排序结果。 #include……voidbubble(intnum[],intcount){ ……} intmain()//我实在有些懒得写main里两个参数,反正它们暂时对我们都没有用,          //反正CB会为你自动生成,所以从此刻起,我不写了,除非有必要。{   intvalues[]={2,5,1,4,3};   intcount=sizeof(values[])/sizeof(values[0]);   bubble(value,sizeo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。