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