氣泡排序和選擇排序 python

2022-08-02 12:30:22 字數 1128 閱讀 7001

排序方法有很多,實際和面試中我們面對最多可能就是氣泡排序和選擇排序

氣泡排序:在給定資料列表中從第乙個開始逐一和下乙個值進行比較,如果發現下乙個值大於自己就調換下位置,以此類推,到最後便可以實現從小到大的排序

選擇排序:在給定資料列表中找到最小的乙個數值,然後依次和後面的進行對比,比如我們認為最左側的值最小,並將它與後面的值依次進行對比,一旦確定哪個資料是最小的就把那個數值放在最前面,然後開始對比第二小的值,以此類推

上**class testsort:

def setup(self):

self.data=[1,8,3,6,4,0]

self.expect_data=[0,1,3,4,6,8]

'''氣泡排序'''

def bubble_sort(self,data : list):

size=len(data)

for i in range(size):

for j in range(size-i-1):

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

data[j],data[j+1]=data[j+1],data[j]

return data

'''選擇排序'''

def selection_sort(self,data:list):

size=len(data)

for i in range(size):

min_id=i

for j in range(i+1,size):

if data[min_id]>data[j]:

min_id = j

data[i],data[min_id]=data[min_id],data[i]

min_id=i#很多人會忽略這行

return data

'''驗證氣泡排序'''

def test_bubble(self):

assert self.expect_data==self.bubble_sort(self.data)

'''驗證選擇排序'''

def test_selevtion(self):

assert self.expect_data==self.selection_sort(self.data)

python 冒泡和選擇排序

在描述演算法複雜度時,經常用到o 1 o n o logn o nlogn 來表示對應演算法的時間複雜度,這裡進行歸納一下它們代表的含義 這是演算法的時空複雜度的表示。不僅僅用於表示時間複雜度,也用於表示空間複雜度。o後面的括號中有乙個函式,指明某個演算法的耗時 耗空間與資料增長量之間的關係。其中的...

python氣泡排序 選擇排序

氣泡排序 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個的位置。2 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。完成一次完整的比較和交換位置時,最後的元素應該會是最大的數。3 針對所有的元素重複以上的步驟,除了最後乙個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任...

Python 氣泡排序 選擇排序

依次輸入n個數,進行氣泡排序 氣泡排序法,即兩個相鄰的進行比較,比較之後換位置 def bubblesort arr n len arr for i in range n for j in range 0 n i 1 if arr j arr j 1 arr j arr j 1 arr j 1 ar...