演算法 氣泡排序 Python

2021-10-08 03:42:03 字數 901 閱讀 2701

氣泡排序就是把小的元素往前調或者把大的元素往後調。比較相鄰的兩個元素,如果兩個元素相等,不發生交換。這個應該算原理吧。

時間複雜度: 因為存在那麼一種情況,陣列無需排序,但是,演算法執行的時候該比還是要比的,所以最樂觀的情況下,時間複雜度為o(n)。最差的情況下為o(n^2),事實上,一般平均時間複雜度都是o(n^2)。

算了,廢話不多說。

import datetime

import random

def bubble_sort(array):

for i in range(len(array) - 1):

for j in range(len(array) - i - 1):

if array[j] > array[j + 1]:

array[j], array[j + 1] = array[j + 1], array[j]

return array

array = [i for i in range(0, 100, 3)] # 隨機數列

random.shuffle(array)

print("array ", len(array), array) # [0, 3, 6, 9, 12, 15, 18]

# 開始時間

start = datetime.datetime.now()

# 輸出

print("result", bubble_sort(array))

# 結束時間

end = datetime.datetime.now()

# 輸出

print("final is in ", end - start)

本來氣泡排序是不準備寫的,這個排序稍慢了一點,但也算穩定。今天偶然看到了它,既然如此就拿出來寫寫。

Python排序演算法 氣泡排序

def bubblesort seq length len seq for i in range length for j in range length 1,i,1 if seq j 1 seq j seq j 1 seq j seq j seq j 1 if name main seq 2,9,...

python 排序演算法 氣泡排序

所謂氣泡排序就是 將乙個數列中的數字兩兩之間進行比較,如果第乙個元素大於或小於第二個元素,那麼就將兩個元素位置交換,然後這個小或大值再往下兩兩比較,使最大或最小值慢慢浮到數列的最頂端,這樣的排序演算法我們稱之為氣泡排序。1 首先要獲取乙個數列,或者說乙個容器,那麼len 容器 2,否則我想排序就沒有...

Python氣泡排序演算法

coding utf 8 氣泡排序演算法 import random fenshu int input 請輸入考試滿分 renshu int input 請輸入考試人數 sortsre input 倒敘 正序 請選擇 y n while sortsre y and sortsre n print 您...