1. 程式人生 > 實用技巧 >Python演算法--排序-氣泡排序

Python演算法--排序-氣泡排序

一、氣泡排序

我們在學校都學習過排序演算法,這些排序演算法中就有一個我們常提到的氣泡排序(Bubble Sort)

氣泡排序,顧名思義,就是像水中的小魚吐泡泡一樣,一邊變大,一邊向上浮動,它重複地走查需要進行排序的數列,每次比較兩個相鄰的元素,如果他們的順序是錯誤的,就把他們的順序交換過來。

我們看一下網上的這個示意圖:

對於 N 個元素的列表,如果我們每次只找出一個最大(小)值,那麼我們按理來說需要進行(N-1)次比較即可完成對該列表的排序;

二、編碼實現

不多說,直接上編碼=。=剛開始寫,寫得不好多包涵,哈哈哈哈

# -*- coding: utf-8 -*-
# @Author  : Sai
# @Email   : [email protected]
# @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