• 123.59 KB
  • 2022-07-28 发布

2018浙江高中信息技术排序和查找算法复习资料总结

  • 12页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
2018浙江高中信息技术排序和查找算法复习资料总结-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN2018年浙江省高中信息技术选考排序和査找算法复习资料一.排序算法1.选择排序11\n(1)概念:找出数组元素中最小(大)的数据,使它与第一个元素中的数据交换位置;在余下的元素中继续找最小(大)的元素,与第二个元素中的数据交换位置;……(2)比较的次数:n*(n-l)/2交换的次数:小于nJ趟数:n-12d12d12d12d12d191515151530301818183183183303193194224224224224225155“g519530530(3)算法:将数组内的数据从小到大排序fori=lton-1min=iforj=i+ltonifd(j)mThentempi=xs(j):2:xs(m)=tempitemp2=df(j):df(j)=df(m):df(m)=temp2EndIfNextjForj=3List2.Additemxs(j)+H”+Str(df(j))List2.AddItem””NextjEndSub1)command1上单击事件处理过程中采用的算法是:选择排序(填:冒泡排序或选择排)2)command1上单击事件处理过程中采用的排序方式是:二(填升序或降序)3)程序中划线①处应埴入df(k)>df(m)4)程序中划线②处应埴入xs(i)二xs(m)5)程序中划线③处应填入1to71.冒泡排序(1)概念:把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻两个元素中的数据,将较小的数据换到上面的一个元素中,重复这一过程,直到处理完最后两个元素中的数据,称为第一遍加工。然后对余下的ml个元素重复上述处理过程,直11\n至最后进行余下的两个数据的比较和交换。ddddd119115115115115230219218218218318330319319319422418430422422515522522530530(2)算法:将数组内的数据从小到大排序for1=1ton-1forj=nto1+1step-1ifd(j)d(i・l)Thentemp二d(j):d(j)二d(j・1):d(卜1)=tempEndIfNextjNextiFori=1To10List2.AddItemStr(d(i))莊列表2中显示排序后的数据NextiEndSub1.选择排序和冒泡排序对比:若数组d里有n个待排序的数据,分别用冒泡法和选择法对此进行排序,试填充下表中的数据。排序方法趟数方向核心操作比较次数交换次数冒泡n~l自下而上数据比较数据交换nA(n-1)/2<^nA(n-1)/2选择n-1自上而下找数据数据交换n*(n-1)/2<=n~l二.查找算法11\n1.顺序查找11\n(1)概念:从数组的第一个数据开始,逐个将数据与给定的值进行比较。若某个数据和给定的值相等,则查找成功,输出所查数据的位置;反之,查找不成功,输出"数据不存在于此数组中円key326532991=1i=51111(2)算法:11\n顺序查找的程序实现key在规模为n的数组变量d中査找某—数据(假设要査找的数据存储在变量key中)9•d132062130For1=1ton3321742526Ifd(i)=keythen52589Print“找到了,位置在”,i63266Exitsub74832endif87052NextiPrint•找不到"1.对分查找(1)概念:前提:数组中被查找的数据必须是有序的基本思想:首先将查找的数据与有序数组内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在数组的前半部分还是后半部分继续进行查找。在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。(2)算法:11\n对分查找过程:Key521102153174185226277358459481052116512671372148515971698我们用变呈i和j记录所要査找范围的起始和终止位置,m表示此范围内的中间位呂dd<—1=9—ni=fix((i4-j)/2>10—j=ll11\n对分查找的程序实现在规模为ri的数组变量d(按增序存储)中查找某一数据(假设要査找的数据存储在变量key中)Dowhilei<=jm=fix((i+j)/2)ifd(m)=keythenPrint“找到了,位置在”,mExitsubelselfkey