冒泡排序算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
排序算法的分析及实现
冒泡排序和选择排序
排序的意义
排序是为了将一组杂乱的数据变成一组 有序的数据。(递增或递减)
冒泡排序
理解:冒泡排序是在一列数据中把较小的数据逐次 向上推移的一种排序技术。
数组
为了存储一组数据,我们需要用到数组变量
例如 dim d(1 to 1000) as integer
Next j
Next i
在经过某一遍排序“加工”后,数组元素a(l)到a(5)的数据依
次为“25、77、51、59、32”。则 下一遍排序“加工”后数组
元素a(l)到a(5)的数据应该是 )
A(
A.25、32、77、51、59 B.25、32、51、59、77 C.25、32、59、51、77 D.25、32、51、7、59
该排序采用的算法与排序方式分别为
(C )
A. 冒泡排序,降序 B. 选择排序,降序 C. 冒泡排序,升序 D. 选择排序,升序
3.实现某排序算法的部分VB程序如下: For i = 1 To 4 For j = 5 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 Next i
两个数进行数据交换, 就象两杯水进行交换,
需要再拿一个空杯
输出已排序数组d 结束
当i 从1到3 变化时 每次 j 从4 到i+1 时
开始 d(j)比d(j-1)小,则交换它
i=1
N i≤n-1? Y j=n
N j>i?
Y Y
d(j)<d(j-1)?
i=i+1
113、46、69、35。采用冒泡排序对其进行排序,若
完成第一遍时的结果是35、82、113、46、69,则完
成第二遍时的结果是
( C)
A.35、82、113、46、69
B.35、46、82、69、113
C.35、46、82、113、69
D.35、46、69、82、113
2.下表记录了6个数据的排序过程。分析表中数据可知,
j>=i+ 1
N
互换d(j)与d(j-1)的数据
j=j-1
冒泡排序算法
Private Sub Command1_Click() '对8个数进行冒泡法排序
List2.Clear '将排序后的列表数据清空
For i = 1 To 7
For j = 8 To i + 1 Step -1
If d(j) < d(j - 1) Then
A.369581
B.136958
C.135698
D.316958
6. 在某年市机器人投蓝比赛决赛中,共有5支队伍参 加,各队的最终成绩如下:82、74、66、95、 70(单位:个/分钟),现用冒泡排序算法来实现这 些数据的排序操作:
则在第源自文库遍加工的操作中,共需要交换数据的次数

( B)
A. 1次
定义了一个数组变 量d, 下标从1到1000
冒泡排序
用数组来存储一系列同类型的数据, 然后调整数组中的元 素
例如: dim d(1 to 4) as integer ‘定义一个数组变量d
d (1) 27
27
27 j-1 18
d (2) 36
36 j-1 18 j
27
d (3) 32 j-1 18 j 36
k = d(j): d(j) = d(j - 1): d(j - 1) = k
End If
Next j
Next i
For i = 1 To 8
List2.AddItem Str(d(i)) '在列表2中显示排序后的数据
Next i
End Sub
1. 某书店在5所学校流动售书量(单位:本)分别是82、
当i 从1到3 变化时
程序代码: 每次 j 从4 到i+1 时
d(j)比d(j-1)小,则交换它们
N表示有几个数进行排序
For i = 1 To n - 1
For j = n To i + 1 Step -1
If d(j) < d(j - 1) Then
( k = d(j): d(j) = d(j - 1): d(j - 1) = k
B. 2次
C. 3次
D. 4次
7. 有如下VB程序段: s=“ ” For i = 1 To 3 For j = 6 To i + 1 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 s = s + str(a(i))
36
d (4) 18 j 32
32
32
第1次冒泡排序时 j 从 4 开始到2
当i 从1到3 变化时
算法分析
每次 j 从4 到i+1 时
d(j)比d(j-1)小,则交换它们
第1次冒泡排序时 j 从 4 开始到2
以i表 示次数
For j=4 to 2 step -1 if d(j)<d(j-1) then 交换d(j) 和d(j-1)的值
进行排序,则共需比较的次数为
(B )
A.21
B.15
C.10
D.28
9. 设计一个VB程序,点击“随机产生15个整数”按钮,程序 自动在列表框List1中产生15个1000以内的随机非负数,点 击“冒泡排序”按钮,对这些数据按冒泡算法进行从大到 小排序。程序运行时界面如图9-1所示:
第2次冒泡排序时 j 从 4 开始到3
For j=4 to 3 step -1
if d(j)<d(j-1) then 交换d(j) 和d(j-1)的值
第3次冒泡排序时 j 从 4 开始到4
For j=4 to 4 step -1
if d(j)<d(j-1) then 交换d(j) 和d(j-1)的值
Next i Text1.Text=str(s)
数组元素从a(1)到a(6)的数据依次为“3、7、2、5、8、9”,经
过该程序“加工”后,文本框Text1中显示的是 A.9 8 7 B.2 3 5 C.3 7 2 D.7 3 2
( B)
8. 有一组原始数据:13、15、8、65、14、33。若采用冒泡法
4.有一组原始数据:23、25、18、63、84、77、65、9、
33、17。利用冒泡排序算法进行从小到大排序,最多需
要进行( D )次加工,才可以完成整个数据的排序。
A.5
B.6
C.8
D.9
5. 书籍将数据3、6、9、5、8、1进行一趟冒泡排序
后得到的数据刚好是小杨的银行卡密码,那么小
杨的银行卡密码是( B )
相关文档
最新文档