排序方法有很多,實際和面試中我們面對最多可能就是氣泡排序和選擇排序氣泡排序:在給定資料列表中從第乙個開始逐一和下乙個值進行比較,如果發現下乙個值大於自己就調換下位置,以此類推,到最後便可以實現從小到大的排序
選擇排序:在給定資料列表中找到最小的乙個數值,然後依次和後面的進行對比,比如我們認為最左側的值最小,並將它與後面的值依次進行對比,一旦確定哪個資料是最小的就把那個數值放在最前面,然後開始對比第二小的值,以此類推
上**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...