VB冒泡排序专题.docVIP

  • 5
  • 0
  • 约6.95千字
  • 约 4页
  • 2023-12-08 发布于江西
  • 举报

(完整word版)VB冒泡排序专题

(完整word版)VB冒泡排序专题

(完整word版)VB冒泡排序专题

VB冒泡排序专题

班级姓名

知识点回顾:

冒泡排序的特征:从后往前两两比较数据,不符合大小关系的两数交换至达到要求。

2、关于冒泡需理解:

※升序:将后数小于前数的两个数进行交换;降序:将后数大于前数的两数进行交换;

※N个数最多进行N-1遍排序;两数比较的次数最多为N*(N—1)/2;两数交换次数最多为:N*(N-1)/2;

※冒泡有很多改进算法,在练习中要加强理解和记录;

3、冒泡经典代码:(以降序为例)

fori=1ton—1

fori=1ton—1变量i控制遍数n-1

forj=ntoi+1step-1’控制每次比较次数n—i和方向

ifd(j)d(j—1)then’不满足降序(后项前项)则交换

temp=d(j):d(j)=d(j—1):d(j—1)=temp

endif

nextj

nexti

fori=1ton—1

fori=1ton—1

forj=n—1toistep—1’理论上而言,只需控制每次比较次数n-i即可

ifd(j)〈d(j+1)then’根据j的初值和终值判断是j+1还是j-1

temp=d(j):d(j)=d(j+1):d(j+1)=temp

endif

nextj

nexti

冒泡经典算法默认数据从后往前冒,第一次比较的两个数一定是a(n)与a(n—1),一定是先把最值放a(1)中;

而事实上冒泡也可以从前往后冒,第一次比较的两个数一定是a(1)与a(2),一定是先把最值放在a(n)中.

fori=n

fori=n—1to1step-1

forj=2toi+1控制比较次数n-i和方向

ifd(j)〉d(j-1)then

temp=d(j):d(j)=d(j—1):d(j—1)=temp

endif

nextj

nexti

fori=n—1to1step—1’变量i控制遍数n—1

forj=1toi

ifd(j)〈d(j+1)then

temp=d(j):d(j)=d(j+1):d(j+1)=temp

endif

nextj

nexti

4、字符串的排序:可以排序,按照字符的ASCII码。从第一个字符开始比较,直到比出大小,即当字符串第一个字符一样时,按照第二个字母的ASCII码排,以此类推。例:“bcd”大于“adb”,“efad”小于“efcd”。

巩固练习:

1、在运动会上,男生第一组6位选手的百米成绩(单位:秒)分别是“13.4、12.3、11.2、13。8、13。1、11。0”,若使用冒泡排序法将该组的成绩按第一名、第二名、第三名……的顺序排序,则第一遍排序后的顺序是();两遍排序后的顺序是();

A。11。011。213。813。412.313.1B.11.012.311.213.813。113.4

C。11。011.213.412。313。113.8D。11.013。412.311。213。813.1

2、有一组10个数据的无序序列,利用冒泡排序算法进行从小到大的排序,需要比较的次数和最多交换的次数,最多需要进行加工的遍数分别为()

A。9,45,9B.45,15,9C.45,45,9D。15,45,8

3、在NBA某赛季中,快船队5场比赛得分依次为97,89,111,70,90,若采用冒泡排序算法对其进行从小到大排序,在整个排序过程中,数据97被交换的次数是()

A.1次B.2次C.3次D.4次

4、对存储在stu

文档评论(0)

1亿VIP精品文档

相关文档