admin 管理员组文章数量: 1184232
2024年3月27日发(作者:redis存对象用什么类型)
VB冒泡排序专题
班级 姓名
知识点回顾:
1、冒泡排序的特征:从后往前两两比较数据,不符合大小关系的两数交换至达到要求。
2、关于冒泡需理解:
※升序:将后数小于前数的两个数进行交换;降序:将后数大于前数的两数进行交换;
※N个数最多进行N-1遍排序;两数比较的次数最多为N*(N-1)/2;两数交换次数最多为:N*(N-1)/2;
※冒泡有很多改进算法,在练习中要加强理解和记录;
3、冒泡经典代码:( 以降序为例 )
for i=1 to n-1 ’变量i控制遍数n-1
for j=n to i+1 step -1 ’控制每次比较次数n-i 和方向
if d(j)>d(j-1) then ’不满足降序(后项>前项)则交换
temp=d(j): d(j)=d(j-1):d(j-1)=temp
end if
next j
next i
for i=1 to n-1
for j=n-1 to i step -1 ’理论上而言,只需控制每次比较次数n-i即可
if d(j) temp=d(j): d(j)=d(j+1):d(j+1)=temp end if next j next i 冒泡经典算法默认数据从后往前冒,第一次比较的两个数一定是a(n)与a(n-1),一定是先把最值放a(1)中; 而事实上冒泡也可以从前往后冒,第一次比较的两个数一定是a(1)与a(2),一定是先把最值放在a(n)中。 for i=n-1 to 1 step -1 ’变量i控制遍数n-1 for i=n-1 to 1 step -1 for j= 1 to i for j= 2 to i+1 ’ 控制比较次数n-i和方向 if d(j) temp=d(j): d(j)=d(j+1):d(j+1)=temp temp=d(j): d(j)=d(j-1):d(j-1)=temp end if end if next j next j next i next i 4、字符串的排序:可以排序,按照字符的ASCII码。从第一个字符开始比较,直到比出大小,即当字符串 第一个字符一样时,按照第二个字母的ASCII码排,以此类推。例: “bcd”大于“adb”,“efad”小于“efcd”。 巩固练习: 1、在运动会上,男生第一组6位选手的百米成绩(单位:秒)分别是“13.4、12.3、11.2、13.8、13.1、11.0”, 若使用冒泡排序法将该组的成绩按第一名、第二名、第三名……的顺序排序,则第一遍排序后的顺序是 ( );两遍排序后的顺序是( ); A. 11.0 11.2 13.8 13.4 12.3 13.1 B.11.0 12.3 11.2 13.8 13.1 13.4 C. 11.0 11.2 13.4 12.3 13.1 13.8 D.11.0 13.4 12.3 11.2 13.8 13.1 2、有一组10个数据的无序序列,利用冒泡排序算法进行从小到大的排序,需要比较的次数和最多交换的 次数,最多需要进行加工的遍数分别为( ) A. 9,45,9 B. 45,15,9 C.45,45,9 D.15,45,8 3、在NBA某赛季中,快船队5场比赛得分依次为97,89,111,70,90,若采用冒泡排序算法对其进行从 小到大排序,在整个排序过程中,数据97被交换的次数是( ) A.1次 B.2次 C.3次 D.4次 4、对存储在stu ( 0 to n )中的n+1个元素用冒泡排序算法进行排序,元素交换次数的范围和元素比较 次数的值分别为( ) A、[0,n],(n-1)*n/2 B、[1,(n+1)*n/2],(n-1)*n/2 C、[0,(n+1)*n/2],(n+1)*n/2 D、[1,n-1],(n+1)*n/2 5、下列关于排序的算法,不正确的是( ) A.对 N 个数组元素进行排序,冒泡排序和选择排序排序的遍数一样 B.对 N 个数组元素进行排序,冒泡排序和选择排序比较的次数一样 C.对 N 个数组元素进行排序,冒泡排序和选择排序在排序过程中交换次数一样 D.一般情况下,选择排序比冒泡排序效率更高 6、有如下程序段: For i=7 to 5 step -1 For j=7 to 9-i step -1 If a(j)>a(j-1) then k=a(j):a(j)=a(j-1):a(j-1)=k End if Next j Next i 数组元素a(1)到a(7)的数据依次为3,9,1,5,8,6,2 经过该程序段加工后,a(1)到a(3)排列为( ) A.1 2 3 B. 9 8 6 C. 3 9 1 D. 8 6 5 7、有如下VB程序段,已知数组a中有10个元素,保存的数据分别为:56、21、18、64、72、49、3、7、 1 22、80,则程序运行后变量m的值为○ m=0:i=1 Do while i<=10
版权声明:本文标题:(完整word版)VB冒泡排序专题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711519649a598065.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论