课件21张PPT。冒 泡 排 序排 序排 序排队ing…排 序 在日常生活和工作中有许多问题的处理过程依赖于数据的有效性。因此,需要把杂乱无章的数据变为有序的数据,这一过程称为排序。 排序是计算机程序中经常要用到的基本算法,也是日常应用问题中要用到的一种数据处理方法。排序的方法有很多,主要是冒泡排序和选择排序。冒 泡 排 序冒泡排序冒泡排序是在一列数据中把较小的数据逐次向上推移的一种排序技术。核心:相邻两个数之间不断进行比较与交换 冒泡排序冒泡排序冒泡排序冒泡排序冒泡排序例1:规模n=5的数据(15,12,5,42,8)进行冒泡排序(升序) 冒泡排序例1:规模n=5的数据(15,12,5,42,8)进行冒泡排序(升序) 小试牛刀练习1: 四位评委给黑板报打分的成绩依次为9.5,8.9,9.2,9.0。若采用冒泡排算法对其进行从低到高排序,在下表中写出每一遍处理后的排序结果。小试牛刀练习2:如果对例1的数据按降序进行冒泡排序,在下表中依次填写第一遍每次比较后的结果。思 考根据例1,分析对5个数据进行排序,共需进行几轮冒泡,几次比较?思 考根据例1,分析对5个数据进行排序,共需进行几轮冒泡,几次比较?1、5个数据要进行_____轮冒泡。42、第1轮比较_____到_____,比较_____次 第2轮比较_____到_____,比较_____次 第3轮比较_____到_____,比较_____次 第4轮比较_____到_____,比较_____次a(5)a(1)a(5)a(2)a(5)a(3)a(5)a(4)43214+3+2+1=10推 算若现在要对n个数据进行冒泡排序,要进行几遍排序,共需比较几次?1、n个数据要进行_____轮冒泡。n-12、第1轮比较_____到_____,比较_____次 第2轮比较_____到_____,比较_____次 第3轮比较_____到_____,比较_____次 …… 第n-1轮比较_____到_____,比较_____次a(n)a(1)a(n)a(2)a(n)a(3)a(n)a(n-1)n-1n-2n-31(n-1)+(n-2)+(n-3)+…+1=n(n-1)/2小试牛刀练习1:对100个数据进行冒泡排序,需要比较的次数是?100*99/2=4590练习2:对于例1,总共进行了_____次比较操作和_____次交换操作。106在两两数据比较时,要对逆序的数据要进行交换,具体的交换次数要根据数据的实际情况而定,交换的总次数≤比较的总次数。小结:冒泡排序02有n个数组的元素进行排序,则要进行n-1趟冒泡,n(n-1)/2次比较。THANKS