排序算法汇总


categories: python
tags: 算法
copyright: true
ittle: 排序算法


排序算法


- 冒泡排序

原理: 相邻两个元素之间相互对比, 如果第一个元素大于第二个元素, 则交换位置
效果: 最大的元素不断的往后冒泡
特点: 稳定 / 最坏时间复杂度为 O(n2)

def bubble(alist):
    # 获取数列长度
    n = len(alist)
    for j in range(0, n-1):
        # 引入计数变量, 用于记录元素的交换次数
        count = 0
        # 如果count大于零, 则代表位置被交换过,排序过的列表是正序的,所以直接跳出循环
        if count > 0:
            break
        else:
            # 内层循环用于比较相邻元素的大小, n-1-j:表示每次循环的最大长度都向前挪一位(每一次循环都会产生一个最大值)
            for i in range(0, n-1-j):
                # 当前一个元素大于后一个元素的时候, 进行位置交换
                if alist[i] > alist[i+1]:
                    alist[i], alist[i+1] = alist[i+1], alist[i]
                    # 每交换一次位置就进行一次计数
                    count += 1
    # 返回排序后的列表
    return alist

alist = [1,2,3,4,5,6]
l = bubble(alist)
print(l) # [1, 2, 3, 4, 5, 6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值