冒泡排序python

1、冒泡排序
核心算法:在数组x[n]中,从第一个数开始,拿x[i]和后面的数x[i+1]进行比较,如果x[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好像冒泡一样,故取名冒泡排序。
详细讲解:
里层for循环的逻辑:
第一步:从第一个元素开始,与第二个元素比较,如果小于,则交换两个元素的位置,否则不交换位置。
第二步:从第二个元素和第三个元素比较,如果小于,则交换两个元素的位置,否则不交换位置。
类似第一步和第二步的过程,实现第三元素和第四元素比较、第四元素和第五元素比较。。。。。
第N步:倒数第二个元素和最后一个比较。
全部比较之后,整个列表中最大的元素就找到了。
外层for循环的逻辑:
第一步到第N步
然后,重复第一步到N-1步的过程,可以找到第二大的数字
然后,重复第一步到N-2步的过程,可以找到第三大的数字
然后,重复第一步到N-3步的过程,可以找到第四大的数字
。。。。。。。
最后,重复第一步的过程(即:N-(N-2)),找到第N-1大的数字

def bubbleSort(x):
    xlen = len(x)
    for i in range(xlen - 1):
        for j in range(xlen - 1 -i):
            if x[j] > x[j+1]:
                # t = x[j]
                x[j],x[j+1] = x[j+1],x[j]
                # x[j+1] = t

    return x

if __name__ == '__main__':
    print(bubbleSort([1,3,5,6,2]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值