Python算法--排序-冒泡排序

一、冒泡排序

我们在学校都学习过排序算法,这些排序算法中就有一个我们常提到的冒泡排序(Bubble Sort)

冒泡排序,顾名思义,就是像水中的小鱼吐泡泡一样,一边变大,一边向上浮动,它重复地走查需要进行排序的数列,每次比较两个相邻的元素,如果他们的顺序是错误的,就把他们的顺序交换过来。

我们看一下网上的这个示意图:

对于 N 个元素的列表,如果我们每次只找出一个最大(小)值,那么我们按理来说需要进行(N-1)次比较即可完成对该列表的排序;

二、编码实现

不多说,直接上编码=。=刚开始写,写得不好多包涵,哈哈哈哈

# -*- coding: utf-8 -*-
# @Author  : Sai
# @Email   : 932934045@qq.com
# @File    : my_sort.py
# @Time    : 2020/8/11 14:54

def bubble_sort(arr):
    '''
    冒泡排序
    :param arr: 待排序列表
    :return: 排序后的列表
    '''
    for i in range(1, len(arr)):
        for j in range(0, len(arr) - i):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
        # print(arr)
    return arr


if __name__ == '__main__':
    arr1 = [3, 4, 5, 9, 8, 6, 0, 10, 2, 7, 1]
    print("排序前顺序为:" , arr1)
    new_arr = bubble_sort(arr1)
    print("排序后顺序为:" , new_arr)

运行效果如下:

【参考链接】
https://blog.csdn.net/u014597198/article/details/91395700
https://www.runoob.com/python3/python3-examples.html

原文地址:https://www.cnblogs.com/saixuyu/p/13472929.html