冒泡排序算法-Python描述

    冒泡排序的思想:假如数列有n个数,我们从第n个数开始,比较第n个数与第n-1个数的大小,如果第n个小于第n-1个,则交换两者的位置,否则不动;依次进行下去直到数组当中的第一个元素,此时第一个元素就是整个数组当中最小的数值;然后再一次比较数组第n个与第n-1个数组的大小,后面的小于前面的则交换两者的位置,直到整个数组的第2个数为止(因为第一个元素是全数组当中最小的一个,所以不必继续跟它比较了),这样大循环 n-2 次,里面的小循环循环的次数为 直到之前被排出来的那个相对最小值;


def getrandata(num):
    a=[] 
    i=0
    while i<num:
        a.append(random.randint(0,100))
        i+=1
    return a
    

shu=getrandata(10)

shu
Out[19]: [59, 2, 14, 65, 79, 68, 22, 74, 17, 0]


def bubble(a):
    l=len(a)-2
    i=0
    while (i<l):    #大循环l次
        j=l
        while (j>=i):
            if (a[j]>a[j+1]):
                a[j+1],a[j]=a[j],a[j+1]
            j-=1
        i+=1
    return a


bubble(shu)
Out[22]: [0, 2, 14, 17, 22, 59, 65, 68, 74, 79]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值