内容正文:
算法复习专题五 冒泡排序
【课前先导】
1.基本概念
冒泡排序是在一列数据中把较小 (大) 的数据逐次向上推移的一种排序技术。元素会经由交换慢慢“浮”到数列的顶端。从最下面一个元素起,依次比较相邻的两个元素中的数据,将较小的数据调换到上面,小元素像气泡一样上浮。
2.实现过程
【实践】3,1,2,5,4的降序冒泡排序流程
共比较__________次,交换____________次。
【案例】5,3,1,2,4的升序冒泡排序流程
第一遍:
第一次比较后结果:5,3,1,2,4
第二次比较后结果:5,3,1,2,4
第三次比较后结果:5,1,3,2,4
第四次比较后结果:1,5,3,2,4
比较4次,交换2次
第二遍:
第一次比较后结果:1,5,3,2,4
第二次比较后结果:1,5,2,3,4
第三次比较后结果:1,2,5,3,4
比较3次,交换2次
第三遍:
第一次比较后结果:1,2,5,3,4
第二次比较后结果:1,2,3,5,4
比较2次,交换1次
第四遍:
第一次比较后结果:1,2,3,4,5
比较1次,交换1次
共比较10次,交换6次。
3.基本代码(升序) 优化
For i=1 to n-1
For j=__________________
If a(j-1)>a(j) Then
t=a(j)
a(j)=a(j-1)
____________
EndIf
Next j
Next i
i=1:flag=True’假设无序
Do While __________________’无序才循环
flag = False’假设有序
For j = n To i + 1 Step -1
If a(j-1)>a(j) Then
t=a(j): a(j)=a(j-1): a(j-1)=t
_______________’无序,还要继续循环
End If
Next j
i = i + 1
Loop
【课堂探究】
【实践探究】以下哪一些代码可以