名称 | 浙教版信息技术选修1 5.3 排序算法的程序实现——冒泡排序 课件(15张ppt)+教案 | | |
格式 | zip | ||
文件大小 | 1.5MB | ||
资源类型 | 教案 | ||
版本资源 | 浙教版 | ||
科目 | 信息技术(信息科技) | ||
更新时间 | 2021-01-12 15:49:31 |
k=p(i)
:
p(i)=p(i-1)
:
p(i-1)=k
P(i-1)
3
4
4
3
程序实现
程序实现:p(i)与P(i-1)交换数据
7
3
4
8
1
d
1
2
3
4
5
下标
如果一个数组d有5个元素(数据垂直排放,值如下)
要求将它们中的最小一个数放到第一个位置,该如何写程序?。
请再来思考一下:
7
3
4
1
8
1
2
3
4
5
7
3
4
8
1
1
2
3
4
5
1
2
3
4
5
7
1
3
4
8
7
3
1
4
8
1
2
3
4
5
1
2
3
4
5
1
7
3
4
8
如何写程序?
7
3
4
1
8
1
2
3
4
5
7
3
4
8
1
1
2
3
4
5
1
2
3
4
5
7
1
3
4
8
7
3
1
4
8
1
2
3
4
5
1
2
3
4
5
1
7
3
4
8
思考:具体每次是哪两个数据在比较后交换?
d(5)
VS
d(4)
d(4)
VS
d(3)
d(4)
VS
d(2)
d(2)
VS
d(1)
用d(i)表示后一数,前一数则应表示成
d(i-1)
程序实现:d(i)与d(i-1)交换数据
‘判断d(i)是否小于d(i-1)
‘将两个数据相互交换
d(i)
:
d(i)=d(i-1)
:
d(i-1)=k
‘设定i的起始和终止范围
End
if
If
then
循环多次
For
i=
to
Next
5
2
后一数
VS
前一数
Step
-1
要如何将这个数组d的5个元素从小到大排列?。
提升要求:
1
3
7
4
8
1
2
3
4
5
1
2
3
4
5
1
3
4
7
8
1
2
3
4
5
1
3
7
4
8
1
3
4
7
8
1
2
3
4
5
1
2
3
4
5
1
3
4
7
8
7
3
4
8
1
1
2
3
4
5
7
3
4
1
8
1
2
3
4
5
7
3
1
4
8
1
2
3
4
5
1
2
3
4
5
7
1
3
4
8
1
2
3
4
5
1
7
3
4
8
最后一个数据放在第1
最后一个数据放在第2
最后一个数据放在第3
最后一个数据放在第4
1
7
3
4
8
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
3
7
4
8
1
2
3
4
5
1
7
3
4
8
1
7
3
4
8
请写出接下来所有的过程!
请用程序将每次过程实现!
For
j=5
to
2
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
j=5
to
3
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
j=5
to
4
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
j=5
to
5
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
简化程序:
5个数据排序需要经过几遍才能完成?
For
j=5
to
2
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
j=5
to
3
step-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
j=5
to
4
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
j=5
to
5
step
-1
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
For
i
=
to
Next
For
j=
to
.
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
1
‘i表示需要经过的遍数
‘每遍比较互换过程
4
5
i+1
4遍
n个数据排序需要经过几遍才能完成?
n-1遍
n-1
n
Step-1
第1趟
第2趟
第3趟
第4趟
简化程序:
5个数据排序需要经过几遍才能完成?
For
i
=
to
Next
For
j=
to
.
If
d(j)
k=d(j):d(j)=d(j-1):d(j-1)=k
End
if
Next
1
‘i表示需要经过的遍数
‘每遍比较互换过程
4
5
i+1
4遍
n个数据排序需要经过几遍才能完成?
n-1遍
n-1
n
(每趟从后往前比较)
常用的冒泡排序程序的一般结构:
让i从1到n-1
循环
让j从
n到i+1循环
若a(j)与a(j-1)逆序,则交换
a(j)与a(j-1)的值(冒泡一次)
循环尾
循环尾
Step-1