python 冒泡法/快速排序法

import random#导入随机数
def Bubble_sort(l):#定义函数
    for i in range(len(l)-1):#因为如果有n个数,如果n-1个都已经排列好了,所以就已经排列好了,所以要-1,也可以不用-1,但是会造成资源的浪费
        for j in range(len(l)-i-1):#因为排列了i次证明已经把最大的i个顺序数已经拍好了,在最右边。-1是因为后面j+1的原因
            if l[j]>=l[j+1]:#如果l[j]>=l[j+1]是真
                l[j],l[j+1]=l[j+1],l[j]#把两个位置调换哈,就是改变两个的地址
            else:#否者
                 print("else")#
                 continue#退出本次循环,继续下次循环
    return l
if __name__=="__main__":#入口
    l=[]#定义一个列表
    for i in range(5):#循环5次,从0开始
       l.append(random.randint(1,100))#把随机数加入进去,生成一个5个数的序列
    print(l)#
    a=Bubble_sort(l)#传入参数
    print(a)#打印排序后的函数
def Quick_sort(infos):#定义函数
    if len(infos)<=1:#如果置于一个,返回列表
        return infos#
    maxs=[]#定义一个列表装大的数
    mins=[]#定义一个列表装小的数
    for i in infos[1:]:#for循环,因为是和infos[0]比较,所以要在infos 1开始遍历
        if i>infos[0]:#如果大于,就添加到大于中去
            maxs.append(i)##
        elif i<infos[0]:#反之,则添加到小中去
            mins.append(i)#
    return Quick_sort(mins)+infos[0:1]+Quick_sort(maxs)#采用递归的方式,最后得到全部排列的数
b=[33,12,8,88,10,6,5,18]#列表
a=quick_sort(b)#调用函数
print(a)#打印排列好的值

 


 


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值