网站大量收购独家精品文档,联系QQ:2885784924

1 to 5 - 西南石油大学.PPT

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 to 5 - 西南石油大学

选择法 相邻两个元素进行比较,记下较大元素的下标 当前元素与上次比较后的最大元素进行比较 确定完毕的元素的互换是在每一轮完成后进行 特点 比较交换法 (以降序为例):将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过 N-1 轮的比较,可将 N 个数排好。 第 一 轮 比 较 : 1 2 3 5 4 2 1 3 5 4 3 1 2 5 4 5 1 2 3 4 5 1 2 3 4 第一轮结束,找到最大值 5 第 二 轮 比 较 : 5 1 2 3 4 5 2 1 3 4 5 3 1 2 4 5 4 1 2 3 第二轮结束,找到第二最大值 4 for i=1 to N-1 Next i for (j=i+1 to N) if (S(j) S(i))then t=S(i):S(i)=S(j):S(j)=t End if Next j 冒泡法 (以升序为例):将相邻两个数比较,把小数对调到前边,如此进行一轮后,就会把最大的数互换到最后,再进行一次,则会把第二大数排在倒数第二的位置上,进行N-1次后,整个数列即可排好。 8 6 9 3 2 7 原始数据 8 6 9 3 2 7 8 6 9 2 3 7 8 6 2 9 3 7 8 2 6 9 3 7 2 8 6 9 3 7 第一轮排序 For i = 1 To n - 1 Next i For j = n To i+1 step -1 If a(j) a(j - 1) Then t = a(j) a(j) = a(j - 1) a(j - 1) = t End If Next j 人数不定情况下,如何排序? Dim a( ) as integer   n=val(inputbox(“请输入项数”)) Redim a(1 to n) as integer For i = 1 to n a(i) = val(inputbox(“输入成绩”)) Next I For i = 1 to n-1 Next i For j = n to i+1 step -1 If a(j)a(j-1) then t=a(j) a(j)=a(j-1) a(j-1)=t End if Next j For i = 1 to n print a(i); Next i 查询 For i=1 to 15 If a(i)=m then exit for Next i If i15 then print “数组中没有” Else print a(i) Endif 有没有效率更高的查询方式? -123 -10 5 8 30 56 59 66 90 518 有序数组a,查找数据59 high low mid=Int((low+high)/2) 适合条件:数据有序 查找—折半查找 Dim a As Variant a = Array(-123, -10, 5, 8, 30, 56, 59, 66, 90, 518) n = UBound(a) k = Val(InputBox(输入要查询的关键值)) low = 1: high = n find = -1 find=-1表示没有找到 While low = high And find = -1 m = (low + high) \ 2 If k = a(m) The

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档