1. 冒泡排序法
冒泡排序法是观察水中气泡变化而创造的排序方法,它的基本原理是从第一个数开始,比较相邻数据的大小,如果大小有误,则对调之后再与下一个数据进行比较,就像气泡逐渐从水低上升到水面上的情况。经过不断的交换之后,就可以找到最后一个数据正确的位置。接着逐步进行交换,直到完成所有数据的排序为止。冒泡排序法也有两种形式,即递增数列和递减数列。
2. 使用冒泡排序法
- 递增排序
def bubble(data): #自定义一个冒泡排序法函数
for i in range(4,-1,-1): #遍历排序次数
for j in range(i): #遍历新数据
if data[j+1]<data[j]: #如果数据小于原来的数据
data[j],data[j+1]=data[j+1],data[j] #需要交换位置
print('第 %d 次排序之后的结果是'%(5-i),end='')
for j in range(5): #遍历每次排序的结果
print('%3d'%data[j],end='') #输出结果
print() #输出空行
data=[56,20,84,66,13] #创建数列并初始化
print("原始数据为:")
for i in range(5): #遍历原有数据
print('%3d'%data[i],end='') #输出结果
print('\n---------------------------') #输出分界符
bubble(data) #调用冒泡排序法函数
print('\n---------------------------') #输出分界符
print("排序之后的数据为:")
for i in range(5): #遍历排序好的新数列的数据
print('%3d'%data[i],end='') #输出结果
print('') #输出空行
- 递减排序
def bubble(data): #自定义一个冒泡排序法函数
for i in range(4,-1,-1):
for j in range(i): #遍历新数据
if data[j+1]>data[j]: #如果数据大于原来的数据
data[j],data[j+1]=data[j+1],data[j] #需要交换位置
print('第 %d 次排序之后的结果是'%(5-i),end='')
for j in range(5): #遍历每次排序的结果
print('%4d'%data[j],end='') #输出结果
print() #输出空行
data=[14,27,28,4,21] #创建数列并初始化
print("电视台黄金档综艺的收视率如下:")
for i in range(5): #遍历原有数据
print('%4d'%data[i],end='') #输出结果
print('\n---------------------------') #输出分界符
bubble(data) #调用冒泡排序法函数
print('\n---------------------------') #输出分界符
print("排序之后的综艺的收视率如下:")
for i in range(5): #遍历排序好的新数列的数据
print('%4d'%data[i],end='') #输出结果
print('') #输出空行