Code前端首页关于Code前端联系我们

冒泡排序算法的Python实现

terry 2年前 (2023-09-27) 阅读数 66 #数据结构与算法

冒泡排序算法的工作原理如下:

1.比较相邻元素。如果第一个大于第二个(按升序),则交换它们。

2。对每对相邻元素执行相同的操作,从开头的第一对到结尾的最后一对。这一步完成后,最后一个元素将是最大的数。

3。对除最后一个元素之外的所有元素重复上述步骤。

4。对越来越少的元素重复上述步骤,直到没有可比较的数字对为止。

示例图中的步骤如下:

排序算法之冒泡排序的python实现

冒泡序列代码实现:

#!/usr/bin/env python
# -*- coding:utf-8 -*-__author__ = "hsz"def bubble_sort(alist):
    # 外层循环控制比较几轮
    n = len(alist)
    for j in range(n - 1):
        # 内存循环控制交换# -j是不再换已经排好的for i in range(n - 1 - j):
            # 若前一个比后一个大,则换if alist[i] > alist[i + 1]:
                alist[i], alist[i + 1] = alist[i + 1], alist[i]
                # print(li)if__name__ == '__main__':
    li = [33, 11, 26, 78, 3, 9, 40]
    print("原来的列表:", li)
    bubble_sort(li)
    print("排序后的列表:", li)

优化冒泡算法实现:

#!/usr/bin/env python
# -*- coding:utf-8 -*-__author__ = "hsz"# 调优后的冒泡排序def bubble_sort(alist):
    # 外层循环控制比较几轮
    n = len(alist)
    for j in range(n - 1):
        # 定义计数器
        count = 0
        # 内存循环控制交换# -j是不再换已经排好的for i in range(n - 1 - j):
            # 若前一个比后一个大,则换if alist[i] > alist[i + 1]:
                alist[i], alist[i + 1] = alist[i + 1], alist[i]
                # 计数器
                count += 1
        if count == 0:
            returnif__name__ == '__main__':
    li = [33, 11, 26, 78, 3, 9, 40]
    print("原来的列表:", li)
    bubble_sort(li)
    print("排序后的列表:", li)

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门