课件编号5932836

5.3 排序算法的程序实现 课件(17张幻灯片)

日期:2024-05-22 科目:信息技术 类型:高中课件 查看:39次 大小:124708Byte 来源:二一课件通
预览图 1/5
排序,算法,程序,实现,课件,17张
  • cover
课件17张PPT。———VB排序方法之一选择排序练习一完善程序语句:要求找出下面5个数中的最小值的位置,将其所在位置显示在Label1中。 Dim a(1 To 5) As Integer, k As Integer, j As Integer a(1) = 108: a(2) = 120: a(3) = 75: a(4) = 96: a(5) = 48 k = For j = If Then k = j Next j Label1.Caption = "最小数的位置是第" + + "个"12 to 5a(j) < a(k)Str(k)练习二现要将最小值排到数组的第1个位置,尝试在后面写出需要添加的语句。 Dim a(1 To 5) As Integer, k As Integer, j As Integer a(1) = 108: a(2) = 120: a(3) = 75: a(4) = 96: a(5) = 48 k = 1 For j = 2 to 5 If a(j) < a(k) Then k = j Next j Label1.Caption = "最小数的位置是第" + str(k) + "个"‘从上述程序可知,最小值的位置是第k个,因此只要k不是1,就要执行a(k)与a(1)的交换。 If k<>1 then t=a(1) : a(1)=a(k) : a(k)=t实例一现要对这5个数(108、120、75、96、48)从小到大排序: 第2次 2 3 2<>3 交换第3次 3 4 3<>4 交换第4次 4 5 4<>5 交换实例二现要对这5个数(48、120、96、75、108)从小到大排序: 第4次 4 5 4<>5 交换第3次 3 3 3<>3 不交换第2次 2 4 2<>4 交换1 1=1 不交换结论如果 ,那么需要交换。 要对5个数进行从小到大排序,需要找 次最小值(遍历),数据比较 次,数据交换最多 次,最少交换 次。 k <> i41040选择排序从参与排序的所有元素中找出最大(或最小)元素的位置,与第一个元素的数据相互交换位置。(第1遍加工) 在余下元素中,找出最大(或最小)元素的位置,与第二个元素的数据相互交换位置。(第2遍加工) 以此类推…… 直至所有元素成为有序序列。思考 查看学案练习一上的找第1个最小值的方法。那么找第2个最小值的程序应该如何改? a(1) = 108: a(2) = 120: a(3) = 75 a(4) = 96: a(5) = 48 k = For j = If a(j) < a(k) Then k = j Next j12 to 523 to 5第一遍加工: k = 1 For j = 2 to 5 If a(j) < a(k) Then k = j Next j每一遍加工时找最小值位置(下标)的程序实现: a(1) = 108: a(2) = 120 :a(3) = 75:a(4) = 96: a(5) = 48 第二遍加工: k = 2 For j = 3 to 5 If a(j) < a(k) Then k = j Next j第三遍加工: k = 3 For j = 4 to 5 If a(j) < a(k) Then k = j Next j第四遍加工: k = 4 For j = 5 to 5 If a(j) < a(k) Then k = j Next j每一遍加工时如何找最大(或最小)值?程序代码实现完善下列语句,实现对5个数从小到大排序。 For i = 1 To ‘i表示加工次数 k = For j = If Then k = j ‘找到最小值的位置(下标) Next j If Then t = a(i) : : a(k) = t End If Next I 如何实现5个数据从大到小排序? 如果是n个数据排序呢? 4ii+1 to 5a(j) < a(k)k <> ia(i) = a(k)a(j) > a(k)n - 1i+1 to n练习巩固1、超市面食区共有5种面食品种,其价格依次为6,4,5,2,3,若采用选择排序算法对其进行从小到大排序,则第二遍的排序结果是( ) A.2,3,5,6,4 B.2,4,5,6,3 C.2,3,6,4,5 D.2,6,4,5,3 练习巩固2、某校有5位学生参加学生会主席竞选,得票数依次为35,3,13,43,7。使用选择排序的方法对得票数进行从大到小排序,需要进行数据互换的次数是( ) A.5 B.4 C.3 D.2 练习巩固3、实现某排序算法的部分VB程序如下: For i = 1 To 6 k = i For j = i + 1 To 7 If a(j) < a(k) Then k = j Next j If k < > i Then t = a(i): a(i) = a(k): a(k) = t End If Next i 在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”,则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )练习巩固4、有如下VB程序段: s = "" For i = 1 To 3 ... ...

~~ 您好,已阅读到文档的结尾了 ~~