冒泡排序系列课件

合集下载

课件-冒泡排序算法的数组实现.ppt

课件-冒泡排序算法的数组实现.ppt


for j=5 to 3 step -1

if R(j) < R(j-1) then 交换R(j) 和R(j-1) 的值
• 第三次冒泡排序〔i =3 ), j从5到4

for j=5 to 4 step -1

if R(j) < R(j-1) then 交换R(j) 和R(j-1) 的值
• 第四次冒泡排序〔i =4 ), j从5到5
5 3 3 3 33 3 3 3 44
3 5 5 5 55 5 5 5 55
算法分析
• 第一次冒泡排序〔i =1 ), j从5到2

for j=5 to 2 step -1

if R(j) < R(j-1) then 交换R(j) 和R(j-1) 的值
• 第二次冒泡排序〔i =2 ), j从5到3

for j=5 to 5 step -1

if R(j) < R(j-1) then 交换R(j) 和R(j-1) 的值
程序代码
当i从1 到4变化时 每次j从5到 i+1 R( j) < R( j-1),那么交换它们
• For i=1 to o i+1 step -1 ’每次j从5到 i+1

本学期考试成绩都出来了,对于总分前
三名发放奖学金。我们需要设计程序,对全
班同学成绩按总分排序。
那我们应该如何做?要解决这个问题, 就让我们一起来学习排序算法。
排序问题引入
• 排序:为了将一组杂乱的数据变成一组有序 的数据
冒泡法排序〔Bubble sort〕
• “冒泡法排序〞又叫“起泡法排序〞,是一 种比较简单、易懂的交换排序方法,它通过 相邻元素进行比较和交换,逐步将一个无序 序列排列为一个有序序列。

冒泡排序 ppt课件

冒泡排序 ppt课件

稳定排序
冒泡排序是一种稳定的排序算法 ,相同元素的相对位置不会改变

冒泡排序的缺点
时间复杂度高
冒泡排序的时间复杂度为O(n^2),在数据量大时 效率较低。
易受数据分布影响
如果待排序数据集已经部分有序,冒泡排序的性 能会受到影响。
交换操作频繁
冒泡排序需要多次遍历数据,进行大量的交换操 作。
其他排序算法的比较
01
选择排序
选择排序的时间复杂度也是O(n^2),但它的空间复杂度为O(1),且在
数据量较大时比冒泡排序略快。
02
插入排序
插入排序的时间复杂度同样是O(n^2),但它的空间复杂度也是O(1)。
在数据量较小或部分有序的情况下,插入排序的性能优于冒泡排序。
03
快速排序
快速排序是一种分治算法,其平均时间复杂度为O(nlogn),远优于冒
冒泡排序 PPT 课件
目录
• 冒泡排序简介 • 冒泡排序算法实现 • 冒泡排序的时间复杂度分析 • 冒泡排序的优缺点比较 • 冒泡排序的应用实例 • 总结与展望
01 冒泡排序简介
什么是冒泡排序
冒泡排序是一种简单的排序算法,通过重复地遍历待排序的 序列,比较相邻的两个元素,若它们的顺序错误则交换它们 ,直到没有需要交换的元素为止。
终实现数组的有序排列。由于其算法简单且稳定,冒泡排序在某些场景下是高效的。
冒泡排序在字符串匹配中的应用
总结词
基础、适用
VS
详细描述
在字符串匹配中,冒泡排序可以作为算法 的一部分,用于对字符数组进行排序。通 过将待匹配的字符串与模式串中的字符进 行比较和交换,冒泡排序可以帮助算法更 快地找到匹配项或排除不可能的匹配。尽 管冒泡排序在字符串匹配中的效率不是最 高,但由于其简单易实现,仍被广泛使用 。

冒泡排序的算法详解 ppt课件

冒泡排序的算法详解  ppt课件

ppt课件
7
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 97 27 49
97>27, 交换位 置 序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 97 49
ppt课件
8
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 97 49
//用冒泡法对这个数作升序排序 for (i = 0; i <10;i++ )// 元素的个数。
{
for (j = 0; j <9; j++)// 相邻的2个数比较,每次都要比较9次 。 要比较的次数比元素个数少1次 {
if (a[j] > a[j + 1]) {
temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } }
ppt课件
10
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
49<65, 保持不变
序号 1 2 3 4 5 6 7 8 数据 38 49 65 76 13 27 49 97
ppt课件
11
序 号
1
数 据
38
78 49 65 76 13 27 49 97
冒牌排序详解:
// 编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。
/*冒泡排序算法的运作如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是

选修一高中信息技术-冒泡排序 课件

选修一高中信息技术-冒泡排序 课件

√C、当比较的两个数逆序时, 交换顺序
D、只能比较数据
二、代码实现
for i in range(len(list)-1): for j in range(len(list) - i - 1):
if list[j] > list[j + 1]: list[j],
list[j+1] = list[j+1], list[j]
高中信息技术
数据排序 —冒泡排序
冒泡排序
目录
01 课 前 回 顾 02 代 码 实 现 03 习 题 演 练 04 课 堂 总 结
上 节 课 学 了 什 么

一、课、 前回顾
1、冒泡排序的定义
从前到后(即从下标较小的 元素开始)依次比较相邻元 素的值,若发现逆序则交换 位置,使值较大的元素逐渐
从前移向后部。
2、冒泡排序的过程
从小到大排序
第一次排序
7&g轮排序以后,最大 的数就会浮到最右面; 第二轮排序时,只排到 导数第二个...以此排完。
7<22
正序,保 持不变
同之前规律
第一次排 完
第二次排 完
第二次排序
练一练
下面关于冒泡排序说法正确的是()
A、只能从小到大排序
B、可以一次比较三个以上的元素
解题步骤一
If a(j)>a(j+1)
解题步骤二
50,31,18,42,37,23
18,31,23,37,42, 50
从小到大排序,现在确定最大
i=1 i=3
31,18,42,37,23,50 i=2
18,31,37,23,42, 50
排除A
四、课堂总结
01 什 么 是 冒 泡 排 序

动画演示(冒泡法)PPT课件

动画演示(冒泡法)PPT课件

{t=s[j];s[j]=s[j+1];s[j+1]=t;}
printf(“%d %d %d %d %d \n”,s[0],
s[1], s[2], s[3], s[4]); }
s[0] s[1] s[2] s[3] s[4]
23795
16
冒泡法演示(升序) 下一步
j=4时,4<4 为假,循环
结束,该轮
变量与变量的 值
程序段: #include<stdio.h>
的大小,将 较大数存入
s[1]
main()
n5 i0
{ int s[10]={2,9,3,7,5}, n=5, i,j,t;
for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++)
值为4
if(s[j]>s[j+1])
j0
变量与变量的 值
程序段: #include<stdio.h>
的大小,将 较大数存入
s[2]
main()
n5 i0
{ int s[10]={2,9,3,7,5}, n=5, i,j,t;
for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++)
值为4
if(s[j]>s[j+1])
j1
{t=s[j];s[j]=s[j+1];s[j+1]=t;}
printf(“%d %d %d %d %d \n”,s[0],
s[1], s[2], s[3], s[4]); }
s[0] s[1] s[2] s[3] s[4]

冒泡排序系列课件

冒泡排序系列课件

第2轮冒泡的时候它进行比较的范围 A(5)与a(4) A(3) 与a(2) 是什么从_________到________ 第3轮冒泡呢?它进行比较的范围 是什么从_________到________ A(5)与a(4) A(4)与a(3)
第4轮冒泡呢?它进行比较的范围 A(5)与a(4)到________ A(5)与a(4) 是什么从_____
第2轮冒泡的时候它进行比较的范围 A(n)与a(n-1) A(5)与a(4) A(3) 与a(2) 是什么从_________到________ 第3轮冒泡呢?它进行比较的范围 A(n)与a(n-1) 是什么从_________到________ A(5)与a(4) A(4)与a(3)
第i轮冒泡呢?它进行比较的范围 是什么从_____ 到________ A(5)与a(4) A(i+1)与a(i) A(n)与a(n-1)
A(2)<a(1),交换 A(3)<a(2),交换 A(4)<a(3),交换 A(5)>a(4)保持不变
第 二 轮 冒 泡 排 序 过 程
1 2 3
A(3)<a(2),交换
4 5
A(4)<a(3),交换
A(5)>a(4)保持不变
第 三 轮 冒 泡 排 序 过 程
1 2 3 4 5
A(4)>a(3),不变
Next i
a(j)—a(j-1) a(j)—a(j-1) a(j)—a(j-1) a(j)—a(j-1) a(5)—a(4) a(5)—a(4) a(5)—a(4) a(5)—a(4) a(4)—a(3) a(4)—a(3) a(4)—a(3) a(3)—a(2) a(3)—a(2)
比较两个 数,如果 后面的数 比前面的 小,则交 换

冒泡排序与选择排序的比较ppt课件

冒泡排序与选择排序的比较ppt课件

2
第一趟冒泡结果
2
3
a[2] a[3]
3
4
4
1
for(i=0;i++;i<3) 实现一趟冒泡的代码为: if(a[i]<a[i+1])
{ temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;
}
a[0]、a[1]、 a[2] 分别两两比较交换,小数沉 底到a[2]
a[0] a[1] a[2] a[3]
冒泡排序
n个数排序,需要进行n-1趟冒泡
a[0]、a[1]、 a[2]、 a[3]分别两两比较并交换, 使小数沉底到a[3]
a[0] a[1] a[2] a[3]
第一次比较
1
2
3
4
第二次比较
2
1
3
4
第三次比较
2
3
1
4
第一趟冒泡结果
2
3
4
1
第一趟冒泡,小数沉底到a[3]
a[0] a[1]
比较前:
1
if (a[max]<a[j]) max=j;
temp=a[0]; a[0]=a[max]; a[max]=temp;
第二趟:从3个元素中选出最大者,将其换入 a[1]中
过程为:令max表示最大元素的序号(初值max=1),a[1]到
a[3]逐一比较,找出最大元素的位置,a[1]与其互换,使最
大值位于a[1]。 a[0]
a[2] a[3]
3
4
2
1
4个数排序,需 要执行3趟冒泡。
每一趟冒泡,需 要数据进行两两 比较并交换。
选择排序
n个数排序,需要进行n-1趟选择

冒泡排序PPT课件

冒泡排序PPT课件
冒泡排序的基本原理是对存放原始数据的数 组,按从前往后的方向进行多次扫描,每次 扫描称为一趟。当发现相邻两个数据的次序 与排序要求的大小次序不符合时,即将这两 个数据进行互换。这样,较小的数据就会逐 个向前移动,好象气泡向上浮起一样。
2020年10月2日
3
做一做:
下面我们请几位同学上来讲台为我们演示 一下这种排序的过程,首先按照被叫到的 顺序排列,再用这种方法由低到高进行排 序。
2020年10月2日
4
例:用冒泡排序的方法将下面一组无序数组 排成从小到大
{ 49,38,65,97,76,13,27,49 }
分析:首先为了方便分析,我们把所给的数据 先用一个表格列出来,如下:
2020年10月2日
5
原数据和序号
序 号
1
2
3
4
趟9排3序8 的6步5 骤9:7 76 13 27 49
R[1], R[2], R[3], R[4], R[5], R[6], R[7], R[8]
分析:

开始 R[1]>R[2]
第一步做什么? 否
t:=R[1] R[1]:=R[2]
R[2]:= t
如这会何这样有交样交什换行换么数吗数问据?据题,,?
是 R[2]>R[3] 否
t:=R[2] R[2]:=R[3]
经过第二趟排序,实把现第了二什大么的目数的沉?到倒数第二个位置了!
2020年10月2日
7
观察原数据与第一、二趟排序后的数据
序 号
1
2
3
4
5
6
7
8
序数 据号49 138 625 97 3 76 143 27 5 49 6
7

冒泡排序的算法详解课件

冒泡排序的算法详解课件

冒泡排序的名称由来
• 名称由来:冒泡排序的名字来源于越小的元素会经过交换 慢慢“浮”到数列的顶端,如同气泡一样浮到水面上。
冒泡排序的基本思想
01
基本思想:通过不断地比较相邻 的两个元素,并进行交换,使得 较大的元素逐渐“冒泡”到数列 的末端。
02
重复以上过程,直到整个数列有序。
冒泡排序的算法步
总结词:简洁明了
详细描述:Python语言实现冒泡排序算法,代码简洁,易于理解。通过相邻元素比较和交换,使得每 一趟都能将最大的数移到正确的位置。
使用Java实现冒泡排序
总结词:结构严谨
详细描述:Java语言实现冒泡排序算法,代码结构严谨,适 合初学者学习。通过双重循环实现元素的比较和交换,能够 保证排序的正确性。
尽管冒泡排序在实际应用中可能不是最高效的算法, 但其简单易懂的特点使其成为教学和初学者学习排序 算法的常用选择。
THANKS.
优化交换过程
使用临时变量来交换元素,而不是通过多次赋值操作,这样可以减少交换过程中的操作 次数。
优化小数组的排序
使用快速排序或归并排序
对于小数组,使用快速排序或归并排序可能更为高效。 当数组大小小于一定阈值时,可以切换到其他排序算 法。
预处理小数组
对于小数组,可以通过预处理的方式将其排序,然后 将其存储在预定义的数组中,以减少排序时间。
使用C实现冒泡排序
总结词:高效快速
详细描述:C语言实现冒泡排序算法,利用指针和数组操 作,使得代码更加高效。通过减少不必要的比较和交换, 能够提高排序的效率。
冒泡排序的性能分
04

时间复杂度分析
01
最好情况:O(n)
02
最坏情况:O(n^2)

冒泡排序算法课件高中信息技术浙教版必修1数据与计算(16张PPT)

冒泡排序算法课件高中信息技术浙教版必修1数据与计算(16张PPT)
冒泡排序
什么是冒泡排序
冒泡排序是在一列数据中把较
小的数据逐次向上推移的一种排 序技术。
冒泡排序算法把待排序的n个元素的数 组看成是垂直堆放的一列数据,从最下面的 一个元素起,自下而上地比较相邻的两个元 素中的数据,将较小的数据换到上面的一个 元素中。重复这一过程,直到处理完最后两 个元素中的数据,称为一遍加工。
if a(j)<a(j-1) then 交换a(j) 和a(j-1)的值
Next j
Next j
第三遍 i=3
J从4到4
For j=4 to 4 step -1
if a(j)<a(j-1) then 交换a(j) 和a(j-1)的值
Next j
for i = 1 To 3
i=1…2…3
For jF=o4rtoji+=14 sTteop i-1+ 1 Step -1
原始序列
a(1) 36 a(2) 27 a(3) 32 a(4) 18
最终序列
a(1) 18 a(2) 27 a(3) 32 a(4) 36
四个数据怎样冒泡?
第一遍冒泡 J从4到2 i=1
For j=4 to 2 step -1
第二遍 J从4到3
i=2
For j=4 to 3 step -1
if a(j)<a(j-1) then 交换a(j) 和a(j-1)的值
任务1:写出详细比较过程 任务2:比较趟数?每趟比较次数?比较和交换的原则?
冒泡排序的四种方式比较
冒泡方式 比较趟数 每趟比较次数 比较、交换规则
自下而上 从小到大
自下而上 从小到大
自上而下 从小到大
自上而下 从大到小
3

c语言数组冒泡排序PPT课件

c语言数组冒泡排序PPT课件

运行结果:
谢谢!
学习永远 不晚。 JinTai College
感谢您的阅读! 为 了 便于学习和使用, 本文档下载后内容可 随意修改调整及打印。
ห้องสมุดไป่ตู้
for(i=1;i<=7;i++) {
for(j=1;j<=8-i;j++) { if(R[j]>R[j+1]) { T=R[j]; R[j]=R[j+1]; R[j+1]=T; } }
} printf("排序后的数字是:"); for(i=1;i<=8;i++)
printf("%d",R[i]; }
用冒泡排序法排列一组数
主讲:朱令
冒泡排序
教学目标:理解冒泡排序的原理 理解冒泡排序的流程图 加深对变量的使用的理解
教学难点:冒泡排序的原理和流程图
冒泡原理:质量大的(大的数据)下沉 质量小的(小的数据)上浮
方法:下沉法和上浮法
例:将一组无序数组排成从小到大 { 49,38,65,97,76,13,27,49 }
原数据和序号 序号 1 2 3 4 5 6 7 8 数据 49 38 65 97 76 13 27 49
第一趟下沉的步骤: 序号 1 2 3 4 5 6 7 8 数据 38 49 65 9776 791673 19237 29479 4997
经过一趟下沉,把最大的数沉到最底了
用流程图把这一趟下沉描述出来:
i=1, T=0


R[i] R[i 1]
T=R[i]
R[i]=R[i+1]
R[i+1]=T
i=i+1

浙教版信息技术选修1 5.3 排序算法的程序实现——冒泡排序 ppt(19张ppt)课堂任务单动画

浙教版信息技术选修1 5.3 排序算法的程序实现——冒泡排序 ppt(19张ppt)课堂任务单动画

d(1) 27 d(2) 36 d(3) 32 d(4) 18 d(5) 3
d(1) 3 d(2) 18 d(3) 27 d(4) 32 d(5) 36
冒泡排序:把较小的数据逐次向上推移的 一种排序技术。
如何实现将较小 数逐次从下向上
推移呢?
从最后一个元素起,依次比较相邻的两个 元素中的数据,将较小的数据调换到上面。
这是什么结构?
思考:如果参与排序的是n个数呢?
比较遍数与个数关系:遍数=个数-1
转换成标准流程图二
流程图二(推广到n个数)
如何进行不断两两比较交换?
用表格罗列,找出规律:
规律:每次都是从最后面一个数开始比较,最后一个 参与比较的数的下标与比较的遍数有关:遍数+1
思考:共n个数呢?
这里又需要用一个变量来标识正在参加比较的数组元素的下标, 引进变量j:记录一遍处理过程中,当前数组元素下标 小结论:共n个数,第i遍处理时,j的值从n到i+1之间递减, 每次d(j)与它的前一个数d(j-1)进行比较
冒泡排序
情景:
观察水中的气泡往上冒的情景,有什么特 点呢?
五位同学表演怎样冒泡
任务:请五位同学扮演5个数据(气泡) 规则:然后从后面开始两个两个比较你们的数。如果后
面的同学数小的话就和前面的同学换一下位置。
初级目标:直到最小数的同学坐在最前面。
终极目标:从前到后,从小到大有序数列。
原始序列
最终序列
3 就象两杯水进3行交换,
需要再拿一个空杯
d(1) 27 d(2) 36 d(3) 32 d(4) 3 d(5) 18
空椅子
(1)第一趟冒泡(最小数冒到最上面)
d(1) 27 d(1) 27 d(1) 27 d(1) 27 d(1) 27 d(1) 3

常见的排序算法——冒泡排序+课件—2024学年浙教版(2019)高中信息技术选修1

常见的排序算法——冒泡排序+课件—2024学年浙教版(2019)高中信息技术选修1


③ 总共需要比较
冒泡排序算法对数组p做的第4遍加工
常见的排序算法 — 冒泡排序
① 一共需要(n-1)次加工
每一次加工,都是为了排好未排序数据当中最大的元素
9
9
9
7
14
12
7
9
12
7
12
12
7
14
14
14
18
18
18
18
排好第1大的元素
排好第2大的元素
排好第3大的元素
排好第4大的元素
常见的排序算法 — 冒泡排序
j=0
j+1
冒泡排序算法实现
① 一共需要(n-1)次加工
i:记录当前正进行的处理遍数
j:记录当前数组元素的下标。
每遍处理过程中,
j总是从第一个数据元素,下标为0开始。
按每次加1的方式
直至j+1=n-i => j=n-i-1为止
每次比较p[j]与p[j+1]进行比较,
若p[j]>p[j+1],则进行互换
共有(n-i+1)个元素需要比较
两两比较需要比较(n-i)次
常见的排序算法 — 冒泡排序
③ 总共需要比较
(−)


第1遍加工:比较(n-1)次
Q:一共需要几次加工?
① 一共需要(n-1)次加工
第2遍加工:比较(n-2)次

第(n-2)遍加工:比较2次
第(n-1)遍加工:比较1次
总共需要比较次数S
14
14
14
14
18
18
18
18
18
18
18
冒泡排序算法对数组p做的第2遍加工

义务教育版(2024)五年级信息科技 第18课 冒泡排序齐体验(1) 课件

义务教育版(2024)五年级信息科技 第18课  冒泡排序齐体验(1) 课件
以把一组数从小到大排序为例,冒泡排序就是在一组无序的数中,从前面开始, 比较相邻两个数的大小,再根据比较结果交换两个数的位置,如此循环,直到把整 组数从小到大排列完成。
学习活动
一、体验冒泡排序的过 程
二、自然语言描述冒泡 排序算法
三、算法与用计算机解 决问题
学习活动
活动1:体验冒泡排序的过程

学习活动
课堂小结
1 体验冒泡排序的过程
• 比较 • 交换
2 自然语言描述冒泡排序算法
3 算法与用计算机解决问题
• 1. 算法为计算机解决问题提供了明确的求解步骤 • 2. 算法是实现自动化和智能化的基础 • 3. 算法可以提高问题求解的质量和效率
拓展-提升
按照小组同学的学号或座位顺序,把写有小组同学跳绳数据的卡片排成一排,然后依据冒 泡排序算法,按照跳绳数据从大到小的顺序排序。两人一组,一人摆放,一人记录每轮数据卡 片的位置。
学习活动
• 三、算法与用计算机解决问题
在用计算机解决问题时,算法起到了重要作用。 • 3. 算法可以提高问题求解的质量和效率
针对同一问题,不同的算法可能产生不同的解决方案。通过比较和分析不同 算法的性能和结果,可以选择最优的算法来解决问题。此外,通过选择适当的算 法,能够优化计算机存储与处理的步骤、时间等,减少计算量、降低存储需求, 从而提高算法的执行效率。
学习活动
活动3:算法与用计算机解决问题

学习活动
• 三、算法与用计算机解决问题
在用计算机解决问题时,算法起到了重要作用。
依据算法,我们可以将复杂的问题分解为一系列简单、可执行的步骤,从而 确保计算机能够按照预定的要求和顺序进行处理。
通过算法控制,计算机可以自动地执行任务、处理大量的数据、依据判断条 件进行决策等,提高了解决问题的智能化水平。

5.9冒泡排序 课件 五下信息科技赣科学技术版

5.9冒泡排序 课件 五下信息科技赣科学技术版

最终得到的序列 6,15,18,24,9,30 6,15,18,9,24,30 6,15,9,18,24,30 6,9,15,18,24,30 6,9,15,18,24,30
三 试一试
还有一种常见的排序方法叫选择排序。请上网查找关于选择排序的基 本思 想,将“说一说”中的问题用选择排序方法进行排序。
第9课
冒泡排序
任务卡
了解并掌握冒泡排序的基本思想 能画出冒泡排序的过程并熟练运用冒泡排序解决实际问题 能总结出冒泡排序与插入排序两者之间的异同
一 说一说
问题
假设某书店某一类书籍6个种类的日销量数分别为15,6,24,18,30,9 册。现在要对这些书籍按销量从小到大进行排序。
一 说一说
除了上节课的排序,还有没有其他的排序方法对其进行排序呢? 请说出你的想法。
练一练
请使用冒泡排序的方法,将序列“10,1,35,89,55”按从小到大排成有 序序列。
说一说冒泡排序的优缺点。
冒泡排序
从下往上比较相邻的元素,如果下面的比上面的大 ,就交换位置,将 较大的数放在上面;如此继续,直到 最上边尚未排序的元素。这称为冒泡排序过程的“一 轮” 。第一轮结束,最大的元素就被交换到了最上边,重复 以上步骤n-1 轮,所有的元素就按照从小到大的顺序排列 好了。
二 学一学
具体是怎么交换进行冒泡排序的? 第一轮: ·第一次排序:将15与6比较,因为15>6,所以交换位置; ·第二次排序:将15与24比较,因为15<24,所以不交换位置; ●第三次排序:将24与18比较,因为24>18,所以交换位置; ●第四次排序:将24与30比较,因为24<30,所以不交换位置; ·第五次排序:将30与9比较,因为30>9,所以交换位置; 至此,第一轮一共比较了5次,将6个数中的最大数30交换到了最上面,得到了 “6, 15,18,24,9,30”的序列。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数 组 2 变 量 3 a
4 5
1
经典算法之
冒 泡 排 序
授课人:吴素萍
冒泡排序:把较小的数据逐次向上推移的 一种排序技术。
如何实现将较小 数逐次从下向上 推移呢?
从最后一个元素起,依次比较相邻的两个 元素中的数据,将较小的数据调换到上面。
第 一 轮 பைடு நூலகம் 泡 排 序 过 程
1 2 3 4 5
England, France , American , Italy, Japan, China, Hongkong
1 2 3 4 5 6 7
England France American Italy Japan China Hongkong
A(5)<a(4),交换
第 三 轮 冒 泡 排 序 过 程
1 2 3 4 5
A(5)<a(4),交换
小结:如果要对有5个元素的数组进行排序,那么 1、要进行________轮冒泡 4
2、第一轮冒泡的时候它进行比较的范围 A(2) 与a(1) A(5)与a(4) 是什么从_________到________
a(2)—a(1)
冒泡流程图1
j=5
开始
i=1
J>=i+ j? 1 y
n
i<=4
n
A(j)<A(j-1)
y 两数交换
y
n
J=j-1
冒泡
i=i+1
小结:如果要对有n个元素的数组进行排序,那么 n-1 1、要进行________轮冒泡 4 2、第一轮冒泡的时候它进行比较的范围 A(5)与a(4) A(n)与a(n-1) A(2) 与a(1) 是什么从_________到________
2、如果有n个数组的元素进行排序,则要进行 n-1趟冒泡 第一趟冒泡要经过n-1次比较 第二趟冒泡要经过n-2次比较 ……. 第n-1趟冒泡要经过1次比 较
总计:(n-1)+(n-2)+(n-3)+………+2+1
作业一:今年北京奥运会有七个国家或地区 参加,开幕式按照国家或地区英文名从小到大 的次序出场,已知这七个国家或地区的名字, 请写出经前三趟冒泡后出场的次序表。
冒泡流程图1
j=5
开始
j?
i=1
n
y
i<=4
n
A(j)<A(j-1)
y 两数交换
y
n
j=j-1
冒泡
i=i+1
For i= 1 to 4
i=4 i=3 i=2 i=1
i=1 i=2 i=3 i=4
j=5 to 2 j=5 to 3 j=5 to 4 j=5 to 5
i+1 5 step -1 4 2 For j=5 to 3 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
a(j)—a(j-1) a(j)—a(j-1) a(j)—a(j-1) a(j)—a(j-1) a(5)—a(4) a(5)—a(4) a(5)—a(4) a(5)—a(4) a(4)—a(3) a(4)—a(3) a(4)—a(3) a(3)—a(2) a(3)—a(2)
比较两个 数,如果 后面的数 比前面的 小,则交 换
第2轮冒泡的时候它进行比较的范围 A(5)与a(4) A(3) 与a(2) 是什么从_________到________ 第3轮冒泡呢?它进行比较的范围 是什么从_________到________ A(5)与a(4) A(4)与a(3)
第4轮冒泡呢?它进行比较的范围 A(5)与a(4)到________ A(5)与a(4) 是什么从_____
A(2)<a(1),交换 A(3)<a(2),交换 A(4)<a(3),交换 A(5)>a(4)保持不变
第 二 轮 冒 泡 排 序 过 程
1 2 3
A(3)<a(2),交换
4 5
A(4)<a(3),交换
A(5)>a(4)保持不变
第 三 轮 冒 泡 排 序 过 程
1 2 3 4 5
A(4)>a(3),不变
….. …..
n-1 For i= 1 to 4 For j= n5 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
课后小结:
1、冒泡排序:每次从最下面的元素开始, 通过逐次往上比较,将较小的数像上推移
第2轮冒泡的时候它进行比较的范围 A(n)与a(n-1) A(5)与a(4) A(3) 与a(2) 是什么从_________到________ 第3轮冒泡呢?它进行比较的范围 A(n)与a(n-1) 是什么从_________到________ A(5)与a(4) A(4)与a(3)
第i轮冒泡呢?它进行比较的范围 是什么从_____ 到________ A(5)与a(4) A(i+1)与a(i) A(n)与a(n-1)
相关文档
最新文档