- 227.76 KB
- 2022-07-28 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
2018年浙江省高中信息技术选考排序和查找算法复习资料一、排序算法1.选择排序(1)概念:找出数组元素中最小(大)的数据,使它与第一个元素中的数据交换位置;在余下的元素中继续找最小(大)的元素,与第二个元素中的数据交换位置;……(2)比较的次数:n*(n-1)/2交换的次数:小于n-1趟数:n-1(3)算法:将数组内的数据从小到大排序fori=1ton-1min=iforj=i+1tonifd(j)ithenk=d(min)d(min)=d(i)d(i)=kendifnexti(4)例题:例题1:使用选择排序的方法对数据8、6、1、9、4从大到小排序,需要进行数据比较、数据互换的次数分别是(D)A、4,5B、10,2C、3,3D、10,4\n例题2:小陈设计了一个带密码的趣味“4+1”小游戏,小陈告诉大家,该密码可以通过以下方法破解:将一组顺序是“3、2、8、5、9”的数码,在用选择排序法将这组数码从大到小的排序过程中,进行两次数据交换,即得。则该密码可能是(D)A、98523B、92853C、98523D、98253例题3:以下表格中的数据为2009年快乐女生十进七淘汰赛的选手信息。某同学设计了一个VisualBasic程序用于选出晋及前七名的选手信息。程序界面如下图所示,单击“十进七晋级名单”,在list2里显示晋及前七名的选手信息。阅读、完善以下程序,并上机验证。完成下面问题:Dimxs(1To10)AsStringDimdf(1To10)AsIntegePrivateSubForm_Load()DimiAsIntegerxs(1)="黄英“:df(1)=88xs(2)="江映蓉“:df(2)=87xs(3)="李霄云“:df(3)=72xs(4)="刘惜君“:df(4)=77xs(5)="谈莉娜“:d(5)=61xs(6)="郁可唯“:df(6)=81xs(7)="潘虹越“:df(7)=48xs(8)="潘辰“:df(8)=38xs(9)="李媛希“:df(9)=36xs(10)="曾轶可“:df(10)=51Fori=1To10List1.AddItemxs(i)+""+Str(df(i))List1.AddItem""NextiEndSubPrivateSubCommand1_Click()DimjAsInteger,kAsInteger,mAsInteger\nDimtemp1AsStringDimtemp2AsIntegerForj=1To9m=jFork=j+1To10If①Thenm=kNextkIfj<>mThentemp1=xs(j):②:xs(m)=temp1temp2=df(j):df(j)=df(m):df(m)=temp2EndIfNextjForj=③List2.AddItemxs(j)+""+Str(df(j))List2.AddItem""NextjEndSub1)command1上单击事件处理过程中采用的算法是:选择排序(填:冒泡排序或选择排)2)command1上单击事件处理过程中采用的排序方式是:升序(填升序或降序)3)程序中划线①处应填入df(k)>df(m)4)程序中划线②处应填入xs(j)=xs(m)5)程序中划线③处应填入1to71.冒泡排序(1)概念:把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻两个元素中的数据,将较小的数据换到上面的一个元素中,重复这一过程,直到处理完最后两个元素中的数据,称为第一遍加工。然后对余下的n-1个元素重复上述处理过程,直至最后进行余下的两个数据的比较和交换。\n(2)算法:将数组内的数据从小到大排序fori=1ton-1forj=ntoi+1step-1ifd(j)d(j-1)Thentemp=d(j):d(j)=d(j-1):d(j-1)=tempEndIfNextjNextiFori=1To10List2.AddItemStr(d(i))'在列表2中显示排序后的数据NextiEndSub1.选择排序和冒泡排序对比:若数组d里有n个待排序的数据,分别用冒泡法和选择法对此进行排序,试填充下表中的数据。\n一、查找算法1.顺序查找(1)概念:从数组的第一个数据开始,逐个将数据与给定的值进行比较。若某个数据和给定的值相等,则查找成功,输出所查数据的位置;反之,查找不成功,输出“数据不存在于此数组中”\n(2)算法:1.对分查找(1)概念:前提:数组中被查找的数据必须是有序的基本思想:首先将查找的数据与有序数组内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在数组的前半部分还是后半部分继续进行查找。在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。(2)算法:\n\n