Fighting-算法-冒泡排序

"""
交换排序:根据序列中两个元素关键字的比较结果来兑换这两个记录在序列中的位置。
以下是冒泡排序的两种实现:

"""


def bubbleSort(lists):
    size = len(lists)
    if size == 0:
        return
    # k 表示lists 的元素个数,有多少个元素就外部迭代多少次。
    # 冒泡排序的特点是,每一趟排序都会将一个元素放置到其最终的位置上。所以内部循环比较的次数会减少。
    # 把大的数推向后面。
    for k in range(0, size):
        for i in range(0, size-k-1):
            if lists[i] > lists[i+1]:
                lists[i], lists[i+1] = lists[i+1], lists[i]
    return lists


#  把小的数推向前面。
def bubbleSort_one(lists):
    size = len(lists)
    if size == 0:
        return
    for k in range(0, size):
        for i in range(k+1, size):
            if lists[k] > lists[i]:
                lists[k], lists[i] = lists[i], lists[k]
    return lists


if __name__ == '__main__':
    lists = [3, 7, 100, 1, 6, 9, 56]
    print(bubbleSort())
    print(bubbleSort_one(lists))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值