2018浙江高中信息技术排序和查找算法复习资料总结复习过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018年浙江省高中信息技术选考排序和查找算法复习资料
一、排序算法
1.选择排序
(1)概念:找出数组元素中最小(大)的数据,使它与第一个元素中的数据交换位置;在余下的元素中继续找最小(大)的元素,与第二个元素中的数据交换位置;……
(2)比较的次数:n*(n-1)/2 交换的次数:小于n-1 趟数:n-1
(3)算法:将数组内的数据从小到大排序
for i=1 to n-1
min=i
for j=i+1 to n
if d(j) next j if min<>i then k=d(min) (4)例题: 例题1:使用选择排序的方法对数据8、6、1、9、4从大到小排序,需要进行数据比较、数据互换的次数分别是( D ) A、4,5 B、10,2 C、3,3 D、10,4 例题2:小陈设计了一个带密码的趣味“4+1”小游戏,小陈告诉大家,该密 码可以通过以下方法破解:将一组顺序是“3、2、8、5、9”的数码,在用选择排 序法将这组数码从大到小的排序过程中,进行两次数据交换,即得。则该密码可能 是( D ) A、98523 B、92853 C、98523 D、98253 例题3:以下表格中的数据为2009年快乐女生十进七淘汰赛的选手信息。某同学设计了一个Visual Basic程序用于选出晋及前七名的选手信息。程序界面如下 图所示,单击“十进七晋级名单”,在list2里显示晋及前七名的选手信息。阅读、完善以下程序,并上机验证。完成下面问题: Dim xs(1 To 10) As String Dim df(1 To 10) As Intege Private Sub Form_Load() Dim i As Integer xs(1) = "黄英“: df(1) = 88 xs(2) = "江映蓉“: df(2) = 87 xs(3) = "李霄云“: df(3) = 72 xs(4) = "刘惜君“: df(4) = 77 xs(5) = "谈莉娜“: d(5) = 61 xs(6) = "郁可唯“: df(6) = 81 xs(7) = "潘虹越“: df(7) = 48 xs(8) = "潘辰“: df(8) = 38 xs(9) = "李媛希“: df(9) = 36 xs(10) = "曾轶可“: df(10) = 51 For i = 1 To 10 List1.AddItem xs(i) + " " + Str(df(i)) List1.AddItem "" Next i End Sub Private Sub Command1_Click() Dim j As Integer, k As Integer, m As Integer Dim temp1 As String Dim temp2 As Integer For j = 1 To 9 m = j For k = j + 1 To 10 If ①Then m= k Next k If j <> m Then temp1 = xs(j): ②: xs(m) = temp1 temp2 = df(j): df(j) = df(m): df(m) = temp2 End If Next j For j = ③ List2.AddItem xs(j) + " " + Str(df(j)) List2.AddItem "" Next j End Sub 1)command1上单击事件处理过程中采用的算法是:选择排序(填:冒泡排序或选择排)2)command1上单击事件处理过程中采用的排序方式是:升序(填升序或降序) 3)程序中划线①处应填入df(k) > df(m) 4)程序中划线②处应填入xs(j) = xs(m) 5 )程序中划线③处应填入 1 to 7 2.冒泡排序 (1)概念:把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一 个元素起,自下而上地比较相邻两个元素中的数据,将较小的数据换到上面的一个元素中,重复这一过程,直到处理完最后两个元素中的数据,称为第一遍加工。然后对余下的n-1个元素重复上述处理过程,直至最后进行余下的两个数据的比较和交换。 (2)算法:将数组内的数据从小到大排序 (3)例题: 例题1:5位学生100米短跑的成绩(单位:秒)如下表。若采用冒泡排序算法对其进行排序,则第3趟的排序结果是( A ) for i=1 to n-1 for j=n to i+1 step -1 if d(j) k=d(j) d(j)=d(j-1) d(j-1)=k A、12.6 12.8 13.3 14.2 13.5 B、 12.6 12.8 13.3 13.5 14.2 C、12.6 12.8 14.2 13.5 13.3 D、 12.6 12.8 13.5 14.2 13.3 例题2:下表记录了6个数据排序的过程。分析表中数据可知,该排序采用的算法 与排序方式分别为( C )