Python语言】Python语言中的冒泡排序?

2020-05-26 15:00发布

1条回答
Anonyem
1楼 · 2020-05-27 08:44.采纳回答

冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。


冒泡排序算法的运作如下:

1、比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。


2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。


3、针对所有的元素重复以上的步骤,除了最后一个。


4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


def bubble_sort(alist):
    # 结算列表的长度
    n = len(alist)
    # 外层循环控制从头走到尾的次数
    for j in range(n - 1):
        # 用一个count记录一共交换的次数,可以排除已经是排好的序列
        count = 0
        # 内层循环控制走一次的过程
        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
        # count == 0 代表没有交换,序列已经有序
        if 0 == count:
            break


if __name__ == '__main__':
    alist = [54, 26, 93, 77, 44, 31, 44, 55, 20]
    print("原列表为:%s" % alist)
    bubble_sort(alist)
    print("新列表为:%s" % alist)

    # 结果如下:
    # 原列表为:[54, 26, 93, 77, 44, 31, 44, 55, 20]
    # 新列表为:[20, 26, 31, 44, 44, 54, 55, 77, 93]


相关问题推荐

  • 回答 9

    Python可以说是这几门著名语言里最易理解的了,这就是Python的优点之一,相比较其他语言,PHP,Java,C C++ C#这些语言,

  • 回答 19

    学测试吧,简单容易些

  • 回答 16

    第一语言现在还是java比较好找工作,第二语言学Python或者是go语言都可以了解一下

  • 回答 10

    一、模块介绍1. 定义:模块:本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)2. 语法:• import 语句当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。...

  • 回答 1

    PythonPython是一种面向对象的解释型计算机程序设计语言,具有丰富强大的库,常被称为胶水语言,能够把其他语言制作的各种模块轻松链接在一起。因此Python具有:简单易学、数据分析能力强的特点。很多科学家都会自学Python,进行科研数据分析,由此可见Python...

  • 回答 3

    1、简单;2、易学;3、免费开源;4、自动内存管理;5、可以移植;6、解释性;7、面向对象;8、可扩展;9、丰富的第三方库

  • 回答 1

    人工智能是未来发展的一种趋势,也是当下非常流行的行业,是一门包含十分广泛的科学,由不同的领域组合而成,比如说机器学习、计算机视觉等等,研究人工智能涉及的方方面面是非常复杂的,那么为什么说做人工智能使用python比较好呢?1、Python遵循简单、优雅...

  • 回答 2

    Python 是脚本语言,也就是中间件语言,其内核仍然百是纯 c 的性能表达的,而主要性能消耗在脚本的实时编译上。度而对比c,同样的功能,python可以表达比c更加精炼,当然牺牲了一些性能。如果确实对某知个模组性能不满意,还可以使用 c 编写 Python 模块为其...

  • 回答 3

    1、使用Python进行通用应用程序编程您可以使用Python创建命令行和跨平台GUI应用程序,并将它们部署为自包含的可执行文件。虽然Python不具有从脚本生成独立二进制文件的本机能力,但是可以使用诸如cx_Freeze和PyInstaller之类的第三方包来实现这一点。2、使用P...

  • 回答 3

     ⑴作为初学python的科班出身的小白,python非常简单,非常适合人类阅读。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。  ...

  • 回答 10

    原因一、Python是一种 面向对象的语言谁说程序员找不着对象?在Python里分分钟就可以写个新对象,不喜欢的话甚至还能删掉呢。编程语言两个非常重要的概念,即面向对象与面向过程。举个栗子,当你想吃火锅了,你有两个方式:1、自己出门去菜市场,讲价,买粉...

  • 回答 5
    已采纳

    自学比较慢呢,最好找培训机构学习比较好,有老师指导你也知道怎么学

  • 回答 2

    对于编程语言难与不难真不好下定论,当然相对于其他编程语言,python语言还是容易点。欢迎深入了解python语言。

  • 回答 2

    java是静态类型编程语言python是动态类型java被市场认可和广泛使用三十余年了,比较成熟python近几年刚被市场认可和大量推广,热度比较高python的学习周期短于java

  • 回答 1

没有解决我的问题,去提问