选考VB算法六PPT课件_第1页
选考VB算法六PPT课件_第2页
选考VB算法六PPT课件_第3页
选考VB算法六PPT课件_第4页
选考VB算法六PPT课件_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、选考选考VB算法算法(六六)冒泡排序2020年年1月真题月真题直接交换冒泡排序直接交换冒泡排序For i=1 to n-1For j=i+1 to nIf _ Thenk=a(i):a(i)=a(j):a(j)=kEnd IfNext jNext ia(i)a(j)优化的冒泡排序优化的冒泡排序For i=1 to n-1Flag=false For If then t=a(j):a(j)=a(j-1):a(j-1)=t Flag=true End if Next jIf nof flag then exit forNext I为了知道某轮扫描中是否存在交换操作,我们可以为每个数都准备一面旗子,

2、若相邻的数需要交换位置,则举旗示意。j=n to i+1 step -1a(j-1)a(j) 鸡尾酒冒泡排序鸡尾酒冒泡排序5(left)31264(right)31254(right)613(left)2452(left, ight)3Left=right,do while leftrigh 条件不成立,程序结束鸡尾酒冒泡排序鸡尾酒冒泡排序left = 1: right = nDo While left a(i + 1) Then t = a(i): a(i) = a(i + 1): a(i + 1) = t End If Next ipos = iright = pos For i = ri

3、ght To left + 1 Step -1 If Then t = a(i): a(i) = a(i - 1): a(i - 1) = t End IfNext ileft = pos Loopa(i - 1) a(i)pos = i练习2.分组冒泡排序。使用冒泡排序算法分别对数组奇数和偶数位置的元素按升序排序。例如将数组a = (4,20,2,40,3,50,1,30,5,10)排序成a = (1,10,2,20,3,30,4,40,5,50)Private Sub Command1_Click() Dim i As Integer, j As Integer, k As Integer

4、, t As Integer For i = 1 To i表示左边界,跳跃距离为2 For j = n To 从右向左逐个扫描 If a(j) a(j - 2) Then 跳跃式比较和交换,跳跃距离为2 t = a(j): a(j) = a(j - 2): a(j - 2) = t End If Next j Next iEnd Subn Step 2i + 2 Step -1每趟可把各组的最小值都推送出来,故只需加工(n - 1) 2趟练习3.分组冒泡排序。将数组元素分成3组(即各组元素在数组中的步长为3),各自按升序排序。例如将数组a=(4,20,300,2,40,400,3,10,100

5、,1,30,200)排序成a = (1,10,100,2,20,200,3,30,300,4,40,400)Private Sub Command2_Click() Dim i As Integer, j As Integer, k As Integer, t As Integer For i = 1 To i表示左边界,跳跃距离为3 For j = n To 从右向左逐个扫描 If a(j) a(j - 3) Then 跳跃式比较和交换,跳跃距离为3 t = a(j): a(j) = a(j - 3): a(j - 3) = t End If Next j Next iEnd Subn Step 3i + 3 Step -1练习4.分组冒泡排序。将数组元素分成m组(即各组元素在数组中的步长为m),各自按升序排序。Private Sub Command8_Click() Dim i As Integer, j As Integer, k As Integer, t As Integer Dim m As Integer m = Val(Text2.Text) For i = 1 To i表示左边界,跳跃距离为m For j = n To 从右向左逐个扫描 If a(j) a(j - m) Then 跳跃式比较和交换,跳跃距离为m t = a(j): a(j) = a(j - m)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论