演算法學習 python 6

2021-08-27 14:06:13 字數 686 閱讀 5687

氣泡排序:

#_*_coding: utf-8 _*_:

def bubblesort(list1):

for j in range(0,len(list1)-1):

#增加乙個計數器

count = 0

for i in range(len(list1)-1-j,j,-1):

if list1[i] < list1[i-1]:

list1[i],list1[i-1] = list1[i-1],list1[i]

count += 1

if count == 0:

return list1

return list1

if __name__ == '__main__':

l = [3,1,5,2]

bubblesort(l)

print(l)

#當j=0,i=[3,0],當i=3時,2<5,l[3]與l[2]交換,l=[3,1,2,5];

#當j=1,i=[2,0],當i=2時,2>1,l[2]與l[1]不交換,l=[3,1,2,5];

#當j=2,i=[1,0],當i=1時,3>1,l[1]與l[0]不交換,l=[1,3,2,5],l[0]被排序。

#迴圈len(list1)

時間複雜度:

好的情況為n

壞的情況為n**2

演算法學習 6

計數排序是假設陣列a中的元素都是在0到k區間內的整數。構建乙個陣列c 0,k 初始化為 1,如果陣列a中的元素互異的話,那麼把a的元素拷貝到c中 c a i a i 然後遍歷c,把非 1的元素依次拷貝到陣列a中即可完成排序。但陣列有元素相等要怎麼處理了。元素互異的做法,還可以是c 0,k 初始化為0...

玩轉python(6)協程

多工系統一般都需要解決乙個問題 多個任務如何排程。搶占式排程就是一種很常見的任務排程機制。以單核模式下的程序排程為例,乙個程序處於執行狀態,其他的處於就緒佇列,等到當前執行的程序放棄cpu的使用權,系統將cpu立刻分配給新到達的程序,由於任務的執行順序是不確定的,看上去就像一堆任務在競爭cpu的使用...

玩轉python(6)協程

多工系統一般都需要解決乙個問題 多個任務如何排程。搶占式排程就是一種很常見的任務排程機制。以單核模式下的程序排程為例,乙個程序處於執行狀態,其他的處於就緒佇列,等到當前執行的程序放棄cpu的使用權,系統將cpu立刻分配給新到達的程序,由於任務的執行順序是不確定的,看上去就像一堆任務在競爭cpu的使用...