- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
冒泡排序(Bubble sort)与VB数组实现 本学期考试成绩都出来了,对于总分前三名发放奖学金。我们需要设计程序,对全班同学成绩按总分排序。 那我们应该如何做?要解决这个问题,就让我们一起来学习排序算法。 排序问题引入 排序:为了将一组杂乱的数据变成一组有序的数据 冒泡法排序(Bubble sort) “冒泡法排序”又叫“起泡法排序”,是一种比较简单、易懂的交换排序方法,它通过相邻元素进行比较和交换,逐步将一个无序序列排列为一个有序序列。 根据棋牌规则,把下列5张牌从小到大排列 冒泡法排序(Bubble sort) 理解:冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排序技术。 冒泡排序的数组实现 用数组来存贮一系列同类型的数据,然后调整数组中的元素。 例如:Dim R(5)as integer ‘定义一个数组变量R 冒泡排序的数组实现 把数组的底端当做水底而把另一端比作水面,不断把较小的数据移动到水面或较大的数据移动到水底,最终就可以得到排好序的数组。 冒泡法排序示意图 算法分析 第一次冒泡排序(i =1 ), j从5到2 for j=5 to 2 step -1 if R(j) R(j-1) then 交换R(j) 和R(j-1) 的值 第二次冒泡排序(i =2 ), j从5到3 for j=5 to 3 step -1 if R(j) R(j-1) then 交换R(j) 和R(j-1) 的值 第三次冒泡排序(i =3 ), j从5到4 for j=5 to 4 step -1 if R(j) R(j-1) then 交换R(j) 和R(j-1) 的值 第四次冒泡排序(i =4 ), j从5到5 for j=5 to 5 step -1 if R(j) R(j-1) then 交换R(j) 和R(j-1) 的值 程序代码 For i=1 to 4 ‘当i从1 到4变化 for j= 5 to i+1 step -1 ’每次j从5到 i+1 if R(j) R(j-1) then K= R(j): R(j) =R(j-1): R(j-1)=K end if next j next i 总结(*) 数组R( 1 to n) for i= 1 to n-1 for j=n to i+1 step -1 i -------- 控制循环次数 j --------- 控制元素对比与交换 计算机技术系 张志辉 (观赏FLASH) 5 5 5 5 5 5 5 5 5 5 3 4 4 3 3 3 3 3 3 3 3 5 3 3 4 4 2 2 2 2 2 2 2 2 2 2 2 4 4 4 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 4 3 2 1 R(1) R(2) R(3) R(4) R(5) 当i从1 到4变化时 每次j从5到 i+1 R(j) R(j-1),则交换它们 两个数进行数据交换, 就像两杯水进行交换, 需要再拿一个空杯 R(j) R(j-1),则交换它们
文档评论(0)