返回

资料详情(天天资源网)

资料简介

冒泡排序算法程序实现 经典算法之 一、冒泡排序算法的基本思想 用冒泡排序法把4位同学的身高(179,166,183,172)按低到高排序。 (1)把待排序的n个元素看成是垂直堆放的一列数据。 (2)从最下面的一个元素起,自下而上地比较相邻的两个元素中 的数据,将较小(按升序排序)的数据换到上面一个元素中。重复 这一过程,直到处理完最后两个元素中的数据,称为一遍加工。 (3)对余下的n-1个元素重复上述过程,直至最后进行余下两个数 据元素的比较和交换。 初始 (n=4) 179 166 183 172 第1次比 较、交换 第2次比 较、交换 第3次比 较、交换 179 166 183 172 72 83 179 166 172 183 179 166 172 183 66 79 第1遍加工 第1次比 较、交换 第2次比 较、交换 第1次比 较、交换 166 179 172 183 166 179 172 183 2 9 166 172 179 183 第2遍加工 第3遍加工 二、程序实现 1、升序排序 ① 相邻两两比较,逆序交换 ② 怎么实现一遍加工? ③ 总共进行几遍加工? 初始 179 166 183 172 第1次比 较、交换 第2次比 较、交换 第3次比 较、交换 179 166 172 183 179 166 172 183 166 179 172 183 第1遍加工 第1次比 较、交换 第2次比 较、交换 第1次比 较、交换 166 179 172 183 166 172 179 183 166 172 179 183 第2遍加工 第3遍加工 4→2 4→3 4→4 i n a(j) 数 组 a a(4), a(3), a(2) a(4), a(3) a(4) j 冒泡排序加工遍数 数据个数 最多需要几遍 范例 2 179,166 3 179,166,183 4 179,166,183,172 5 179,166,183,172,175 n 1 2 3 4 n-1 二、程序实现 1、升序排序 For i= 1 To n-1 For j=n To i+1 Step -1 If a(j)a(j-1) 【例1】实现某排序算法的部分VB程序段如下: For i = 1 To 4 For j = 8 To i+1 Step -1 If d(j) < d(j-1) Then t = d(j): d(j) = d(j-1): d(j-1) = t End If Next j s = s + Str(d(i)) Next i Text1.Text = s 若数组元素d(1)到d(8)的数据依次为 “12,7,18,13,9,17,6,23”,运行该程序段后,文本框 Text1中显示的内容是 A.6 7 9 12 B.23 18 17 13 C.12 7 18 13 D.9 17 6 23 If d(j) > d(j-1) Then s = Str(d(i)) + s 假设有某数组:67,86, 58,93,47 • 第一遍加工:47,67,86,58,93 • 第二遍加工:47,58,67,86,93 3、优化冒泡排序算法 优化思路: 某一遍加工过程中没有数据交换,说明数 据已有序,无需进一步加工。 For i= 1 To n-1 flag = False For j=n to i+1 Step -1 If a(j) 查看更多

Copyright 2004-2019 ttzyw.com All Rights Reserved 闽ICP备18023965号-4

天天资源网声明:本站点发布的文章作品均来自用户投稿或网络整理,部分作品未联系到知识产权人或未发现有相关的知识产权登记

全屏阅读
关闭