课件16张PPT。冒泡排序算法及实现王侃知识点回顾1、算法的含义: 算法是指对解题方法的精确描述 2、算法的三种基本结构: 顺序结构,选择结构,循环结构 3、变量的含义: 变量是程序中用来盛放数据的容器,其所盛放的数据是可以发生变化的。生活中经常出现的排序……例如排队,排名等游戏一:请六位同学来进行配合 六个同学排成一排 每人抽取一张扑克牌 以最快的速度按从小到大进行排序 游戏二(难度增加):从最后一个同学开始 同学的位置不变,只改变扑克牌的位置 每次只进行两两比较 如需换牌,必须经由教师进行换牌冒泡排序的思想1、在第二次游戏中,老师走了几个来回? 5次(如果是N个牌进行排序,那又需要几次) 2、每一轮排序的目的是什么? 从该轮参与排序的所有牌中符合条件的那张移到最顶端 3、每轮排序分别做了多少次比较? 5,4,3,2,1 4、每次做比较的两个对象之间是什么关系? 相邻的两张牌像这种把每一轮中最小的元素像气泡一样上浮至本轮顶端位置的算法称为冒泡排序习题:有以下一组数据,用冒泡排序的方法按照从小到大的次序进行排序,请写出第二轮排序后的结果。 12 43 78 21 33 第一轮完成: 12 21 43 78 33 第二轮完成: 12 21 33 43 78算法思想的实现问题一:冒泡排序适合用算法三种基本结构中的哪一种来实现? 循环结构 补充:vb循环语句我们已学了for语句和do语句,哪一种语句更加合适? for语句(for语句控制次数,do语句控制条件)算法思想的实现问题二:如果把扑克牌比作数据,那么每一个持牌人可以看做是……? 变量 补充:如果要一次性设置6个相互关联的变量,可以用什么方法? 定义数组 dim a(1 to 6) as integer算法思想的实现问题三:如果用变量 i来控制排序轮回,如何控制? for i =1 to n-1 …… …… next i (仅供参考!!!)算法思想的实现问题四:在每一轮排序过程中,如果用变量j表示数组的下标,怎么样用j来控制比较次数? for j = n to i+1 step -1 …… …… next j (仅做参考!!!) 算法思想的实现问题五:如何实现每一次的比较? if a(j)…… end if算法思想的实现问题六:如何实现数据交换? t=a(j):a(j)=a(j-1):a(j-1)=t将以上所有问题的答案汇总并组合在一起for i = 1 to n-1 for j = n to i+1 step -1 if a(j) < a(j-1) then t=a(j):a(j)=a(j-1):a(j-1)=t end if next j next i程序实现打开"冒泡排序.vbp"文件,在代码窗口,找到合适的事件过程,将代码打入适当的位置,并进行运行调试。