您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 高中信息技术-1、冒泡排序课件-浙教版
冒泡排序经典算法之排序:把杂乱无章的数据变为有序的数据的过程。(递增或递减)冒泡排序:把较小的数据逐次向上推移的一种排序技术。如何实现将较小数逐次从下向上推移呢?一、冒泡排序的思想:从最下面一个元素起,依次比较相邻的两个元素中的数据,将较小的数据调换到上面,小元素像气泡一样上浮。二、冒泡排序的过程设置数组变量:a(i)为牌的值(i=1、2、3、4、5)12345数组变量a12345第一轮冒泡过程a(5)a(4)保持不变a(4)a(3),交换a(3)a(2),交换a(2)a(1),交换12345第二轮冒泡过程a(5)a(4)保持不变a(4)a(3),交换a(3)a(2),交换12345第三轮冒泡过程a(5)a(4),交换a(4)a(3),不变12345第四轮冒泡过程a(5)a(4),不变当堂练习1、对“648251”中的6个数码进行两轮冒泡排序后即为某游戏中数字密码锁的密码,该密码是()A)684521B)462518C)126485D)864521C当堂练习•2、下表中的原始数据是一组学生的军训打靶成绩,若采用冒泡排序算法对其进行排序,则第3遍的排序结果是。原始数据第一遍第二遍第三遍第四遍98858585959888888595989393889595889393989385889598分析:如果要对有5个元素的数组进行排序,那么1、要进行________轮冒泡2、第一轮冒泡的时候它进行比较的范围是从_________到________第2轮冒泡的时候呢?是从__________到________第3轮冒泡的时候呢?是从__________到________4a(5)与a(4)a(2)与a(1)a(5)与a(4)a(3)与a(2)a(5)与a(4)a(4)与a(3)第4轮冒泡的时候呢?是从__________到________a(5)与a(4)a(5)与a(4)A(j)A(j-1)两数交换YN对有5个元素的数组进行冒泡排序流程图1开始i=1i=4冒泡i=i+1YNYj=5J=?j=j-1NJ=i+1流程图2Fori=1to4NextiForj=5tostep-1ifa(j)a(j-1)thent=a(j):a(j)=a(j-1):a(j-1)=tendifNextj比较两个数,如果后面的数比前面的小,则交换i=1i=2i=3i=4i=12i=23i=34i=45a(j)—a(j-1)a(5)—a(4)a(4)—a(3)a(3)—a(2)a(2)—a(1)a(j)—a(j-1)a(5)—a(4)a(4)—a(3)a(3)—a(2)a(j)—a(j-1)a(5)—a(4)a(4)—a(3)a(j)—a(j-1)a(5)—a(4)j=5to2j=5to3j=5to4j=5to5i+1程序实现提高:如果要对有n个元素的数组进行排序,那么要进行________轮冒泡,其中外循环变量i从到变化,内循环变量j从到变化。n-11n-1ni+1a(1)、a(2)、a(3)、…a(n-2)、a(n-1)、a(n)Fori=1to4Forj=5toi+1step-1ifa(j)a(j-1)thent=a(j):a(j)=a(j-1):a(j-1)=tendifNextjNexti演示已知五个数的冒泡排序VB程序n-1n三、冒泡排序的程序实现思考1:第一个循环改为Fori=2ton后,j怎样变呢?思考2:ifa(j)a(j-1)改为a(j)a(j-1)后对排序结果有何影响呢?四、小结:1、冒泡排序:每次从最下面的元素开始,通过逐次往上比较,将较小的数向上推移2、如果有n个数组的元素进行排序,则要进行n-1趟冒泡…….第n-1趟冒泡要经过1次比较第一趟冒泡要经过n-1次比较第二趟冒泡要经过n-2次比较总计要经过:(n-1)+(n-2)+(n-3)+………+2+1次比较五、复习题解•高考倒计时P70例3、P77第6题、P80第14题
本文标题:高中信息技术-1、冒泡排序课件-浙教版
链接地址:https://www.777doc.com/doc-3777578 .html