冒泡排序(简单而有效的排序方法)
发布日期:2022-02-12 16:07:04 浏览次数:1 分类:技术文章

本文共 876 字,大约阅读时间需要 2 分钟。

一、背景

加深自己对经典排序算法的理解,并且探索更多简化的写法和优化的表现。

 

二、算法介绍

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

 

三、经典代码实现:

def bubble_sort_excue(random_list: list) -> list:    """    冒泡排序 按照从小到大依次排列 每次对比相邻的两个数 判断是否需要交换位置    :param random_list: 乱序列表    :return: 顺序列表    """    lenght = len(random_list)    if lenght <= 1:        return random_list    for i in range(lenght-1):        need_sort = False        for j in range(lenght-i-1):            if random_list[j] > random_list[j+1]:                random_list[j], random_list[j+1] = random_list[j+1], random_list[j]                need_sort = True        if not need_sort:            return random_list    return random_list

 

四、优化思考

1. 当传入的list是1个元素或者是空list的时候,是不需要排序的。

2. 当冒泡进行一圈,都没有发生元素交换的时候,说明此时排序已经完成,无需后面的冒泡了。

转载地址:https://blog.csdn.net/wenq_yang/article/details/109091945 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:快速排序(一行代码搞定)
下一篇:经典排序之插入排序(希尔排序)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月19日 13时56分21秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章