排序算法的程序实现(教师版).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
排序算法的程序实现(教师版) 1.有如下程序段: For i = 1 To 2 For j = 5 To i + 1 Step -1 If a(j) a(i) Then t = a(j): a(j) = a(i): a(i) = t End If Next j Next i 数组元素a(1)到a(5)的值依次为“33,24,45,16,77”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为(  ) A.77,45,33,16,24 B.77,33,45,16,24 C.77,24,45,16,33 D.77,45,33,24,16 答案 A 解析 这是一个选择排序,其排序思想是:在i遍排序中,从最后一个元素开始到第i+1个元素依次和第i号元素比较,如果有比i号元素大的立刻交换,并且记录元素下标,一遍全部比较结束后再交换进行下一轮。 2.小赵对选择排序算法进行了如下改进:在数组的所有元素中找出最小和最大数据的元素,然后将这两个元素分别与第一个和最后一个元素交换数据,在余下的元素中找出最小和最大数据的元素,分别与第二个和倒数第二个元素交换数据,以此类推,直到所有元素的数据按升序排列。小赵编写的VB程序段如下: p = 1: q = 10 Do While p q  iMin = p: iMax = p  For i = p + 1 To q If a(i) a(iMin) Then iMin = i If a(i) a(iMax) Then iMax = i  Next i  t = a(iMin): a(iMin) = a(p): a(p) = t        t = a(iMax): a(iMax) = a(q): a(q) = t  p = p + 1  q = q - 1 Loop 要使程序实现上述算法思想,则方框中的语句是(  ) A.If iMax = p Then iMax = iMin B.If iMin = p Then iMin = iMax C.If iMax = p Then iMin = iMax D.If iMin = p Then iMax = iMin 答案 A 解析 如果找到的最小值的元素序号iMin=q,最大值的元素序号iMax=p,那么在执行完语句t = a(iMin): a(iMin) = a(p): a(p) = t后,实际上最大值同时也被交换到了a(q)中。这种情况下,如果直接执行后续的语句t = a(iMax): a(iMax) = a(q): a(q) = t,则又将最大值交换到a(p)中,并把最小值也换回到原来的a(q)中。为避免交换好的数据换回来,可以把iMax的值赋为q或iMin,如此t = a(iMax): a(iMax) = a(q): a(q) = t语句就变成了自己和自己交换,不会把交换好的数据换回来。 3.有如下VB程序段: Dim s(1 To 6) As String s(1)=″4″:s(2)=″343″:s(3)=″312″:s(4)=″12″:s(5)=″246:s(6)=″121″ c=″ ″ For i=1 To 5 For j=i+1 To 6 If s(i)+s(j)s(j)+s(i) Then   t=s(j):s(j)=s(i):s(i)=t End If Next j c=c+s(i) Next i Text1.text=c 运行该段代码后,文本框Text1中显示的内容为(  ) A.343312246121124 B.434331224612112 C.434331224612121 D.121122463123434 答案C 该程序段采用选择排序法对字符类型的数据进行排序。字符串大小的比较方法是:先比较第1个字符,若不同,ASCII大的一方字符串值较大,之后不用再比较;若相同,则比较第2个。例如:″4″″345″,″4366″″451″。根据代码s(i)+s(j)s(j)+s(i)可知排序方式是降序,排序后的数组元素依次为″4″、″343″、″312″、″246″、″12″、″ 4.有如下VB程序段: For i = 5 To 4 Step -1 k = i For j = 6 - i To 1 Step-1   If a(j) a(k) Then k = j Next j If i k Then  t = a(i): a(i) = a(k): a(k) = t End If Next i 数组元素a(1)到a(5)的值依次为“41,66,70,83,31”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为 (  ) A.31,41,66,83,70 B.83,70,66,41,31 C.83,6

您可能关注的文档

文档评论(0)

白雪clever + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档