011.【排序算法】冒泡排序法

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('')                                                   #输出空行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值