专业编程基础技术教程

网站首页 > 基础教程 正文

冒泡排序(python版)

ccvgpt 2024-11-22 11:28:46 基础教程 8 ℃

众所周知冒泡排序是最简单的排序算法,其核心原理是对于随机给定的一个列表中的n个元素, 可以通过比较和交换相邻的元素来实现元素的排序。具体规则如下:

第1轮排序, 从左至右比较相邻元素的大小n-1次, 若相邻元素a大于b, 则交换a和b的位置, 结束后给定的n个元素中最大的元素是列表最后一个元素。

冒泡排序(python版)

第2轮排序, 从左至右比较相邻元素的大小n-2次, 若相邻元素a大于b, 则交换a和b的位置, 结束后给定的n个元素中第2大的元素是列表倒数第二个元素。

第3轮排序, 从左至右比较相邻元素的大小n-3次, 若相邻元素a大于b, 则交换a和b的位置, 结束后给定的n个元素中第3大的元素是列表倒数第三个元素。

......

第n-1轮排序,从左至右比较相邻元素的大小1次, 若相邻元素a大于b, 则交换a和b的位置, 结束后给定的n个元素中第二小的元素是列表第二个元素。排序结束。

以下为实现的代码:

# coding: utf-8

def my_bubble(my_list):
    n = len(my_list)
    for i in range(n - 1):
        for j in range(n - 1 - i):
            if my_list[j] > my_list[j + 1]:
                my_list[j], my_list[j + 1] = my_list[j + 1], my_list[j]


if __name__ == '__main__':
    elements_list = [5, 1, 9, 2, 0, 1, 3, 7, 4, 6, 8, 1]
    print("排序前:")
    print(elements_list)
    my_bubble(elements_list)
    print("排序后:")
    print(elements_list)

不足之处请批评指正,欢迎讨论~~~

Tags:

最近发表
标签列表