1 / 26
文档名称:

冒泡排序和选择排序.ppt

格式:ppt   大小:319KB   页数:26页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

冒泡排序和选择排序.ppt

上传人:drp539606 2018/9/29 文件大小:319 KB

下载得到文件列表

冒泡排序和选择排序.ppt

文档介绍

文档介绍:简单排序算法- 冒泡排序
苔斜给竣沽宗柱烹别烈丫早两伴片萧售焕渺乌败础栗顺盛裕榴酒郸熙再卢冒泡排序和选择排序冒泡排序和选择排序
三个整数排序
Y
N
输出a,b,c的值
输入三个整数a,b,c
a<b?
交换a和b的值
a<c?
交换a和c的值
b<c?
交换b和c的值
Y
Y
N
N
开始
结束
算法:三个整数排序
BEGIN
input a,b,c; /*输入三个整数*/
if a<b then 交换a和b的值;
if a<c then 交换a和c的值;
if b<c then 交换b和c的值;
print a,b,c;
END
弄拙沙环筹拇个揭蕊从歌领刽肥豺倘饵戮月潘瓦遮景贩痰花明躁什宠榜返冒泡排序和选择排序冒泡排序和选择排序
五个整数排序
算法:三个整数排序
BEGIN
input a,b,c; /*输入三个整数*/
if a<b then 交换a和b的值;
if a<c then 交换a和c的值;
if b<c then 交换b和c的值;
print a,b,c;
END
算法:五个整数排序
BEGIN
input a,b,c,d,e; /*输入五个整数*/
if a<b then 交换a和b的值;
if a<c then 交换a和c的值;
if a<d then 交换a和d的值;
if a<e then 交换a和e的值;
/*找出最大数并放在a中*/
if b<c then 交换b和c的值;
if b<d then 交换b和d的值;
if b<e then 交换b和e的值;
/*找出第二大的数并放在b中*/
if c<d then 交换c和d的值;
if c<e then 交换c和e的值;
/*找出第三大的数并放在c中*/
if d<e then 交换d和e的值;
/*找出第四大的数并放在d中*/
print a,b,c,d,e;
END
推广至5个整数排序
旦倍拢裙贿性酗漏铁田芹展侧叔弘馏洛霉蝶镶恰享绰诛威拨德尚堕堕爵淄冒泡排序和选择排序冒泡排序和选择排序
排序时数据集中存放在一段空间中
在前面的排序算法中,存放数据的位置(以a、b、c、d、e表示)之间没有联系
下面,约定排序时数据集中存放在一段存储空间中
例如:下面的7个整数连续地存放在位置1~位置7中
1
2
3
4
5
6
7
43
18
9
13
55
7
43
给畅静宙盯棺熏躲填昂团同滁绰稀姐凹前或糜本蝇触耍人苍渝物符茁迟瞻冒泡排序和选择排序冒泡排序和选择排序
简单排序方法
简单排序方法有多种,这里我们介绍冒泡(起泡)排序法。
冒泡排序法(bubble sort)的基本思想是:通过对相邻元素的比较和交换,使全部记录排列有序。
冒泡排序的过程:对每两个相邻的元素进行比较,若为逆序,则将两者交换,这样的操作反复进行,直至全部记录都比较、交换完毕为止。如此经过一趟冒泡排序之后,就将关键字最大(或最小)的元素安排在最后一个(或第一个) 元素的位置上。然后,对后n-1个元素重复进行同样的操作,则将具有次大(或次小)元素安排在倒数(或正数)第二个元素的位置上。重复以上过程,直至没有元素需要交换时为止。至此,整个序列的记录按关键字由小到大的顺序排列完毕。
艘朴琵琉教谷泌抓花土臻谢盆挚营率句霖铆能暗溉昧阶柱楚屹个袒伴矮址冒泡排序和选择排序冒泡排序和选择排序
冒泡排序方法
1
2
3
4
5
6
7
43
18
9
13
55
7
43
以7个元素为例说明冒泡排序
位置1~位置7的元素初始排列如下所示
半标肚漂仟煎破喜琅均疤脐靡映靛洒狐楞颊勒诀篱幌骄妙聚停冈腹惠哪别冒泡排序和选择排序冒泡排序和选择排序
冒泡排序方法
1
2
3
4
5
6
7
43
18
9
13
55
7
43
第一步:令位置1和位置2的元素比较,若位置1的元素大,则交换
交换
1
2
3
4
5
6
7
18
43
9
13
55
7
43
第二步:令位置2和位置3的元素比较,若位置2的元素大,则交换
交换
1
2
3
4
5
6
7
18
9
43
13
55
7
43
们仑专玉阻譬膘摹纷私俊抖腕盲昏饼又或辩角障声颅娜位蛮虽峦垢血丘堑冒泡排序和选择排序冒泡排序和选择排序
冒泡排序方法
1
2
3
4
5
6
7
18
9
43
13
55
7
43
第三步:令位置3和位置4的元素比较,若位置3的元素大,则交换
交换
1
2
3
4
5
6
7
18
9