Python的冒泡排序和選擇排序各自是什么意思呢,Python學(xué)習(xí)方法有哪些?就跟著粵嵌一起來看看。
Python數(shù)據(jù)結(jié)構(gòu)之冒泡排序
冒泡排序是一種基礎(chǔ)排序算法,在python中,我們利用列表的的方式來完成,它對列表中的元素進(jìn)行重復(fù)的遍歷,在遍歷的同時進(jìn)行比較,如果兩個數(shù)沒有按照我們規(guī)定的順序進(jìn)行排列,就按照我們預(yù)先設(shè)定好的是順序或者逆序輸出,類似于燒開水時的氣泡,主要操作如下:
比較相鄰的元素。如果個比第二個大(升序),就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始對到結(jié)尾的一對。這步做完后,的元素會是的數(shù)。
針對所有的元素重復(fù)以上的步驟,除了一個。
持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
時間復(fù)雜度
時間復(fù)雜度:O(n)(表示遍歷一次發(fā)現(xiàn)沒有任何可以交換的元素,排序結(jié)束。)
壞時間復(fù)雜度:O(n2)
穩(wěn)定性:穩(wěn)定
附上完整代碼:
defbubble_sort(list):
forjinrange(len(list)-1,0,-1):
foriinrange(j):
iflist>list[i+1]:
list,list[i+1]=list[i+1],list
List=[1,3,2,8,4,6,9,7]
bubble_sort(List)
print(List)
Python數(shù)據(jù)結(jié)構(gòu)之選擇排序
Python學(xué)習(xí)方法中選擇排序(select_sort)是一個基礎(chǔ)排序,它主要通過查找已給序列中的元素的或者小元素,然后將其放在序列的起始位置或者結(jié)束位置,并通過多次這樣的循環(huán)完成對已知序列的排序,在我們對n個元素進(jìn)行操作時,我們至少需要n-1次。
defselect_sort(list):
n=len(list)
#進(jìn)行n-1次操作
foriinrange(n-1):
min_dex=i
#記錄小的位置
forjinrange(i+1,n):
#從i+1選取小位置
iflist[j]<list[min_dex]:
min_dex=j
#小位置不對應(yīng)進(jìn)行交換
ifmin_dex!=i:
list,list[min_dex]=list[min_dex],list
List=[0,3,1,2,9,4,6,5,8,7]
select_sort(List)
print(List)
Python學(xué)習(xí)方法關(guān)于Python冒泡排序和選擇排序的內(nèi)容就暫且說到這里,如想了解更多資訊,歡迎關(guān)注粵嵌教育。