排序
1、氣泡排序
冒泡演算法
import random #列印後的效果為:隨機模組
def bubble_sort(li): #
##################################氣泡排序#####################################
for i in range(len(li)-1): #
多少趟for j in range(len(li)-i-1): #
一趟裡多少次
if li[j]>li[j+1]: #
公升序排列 " < " 為降序排列
li[j],li[j+1]=li[j+1],li[j] #
互換數data=list(range(1000)) #
1000個數
random.shuffle(data) #
打亂這個序列
bubble_sort(data) #
將打亂後的序列傳送到冒泡演算法函式
print(data) #
列印排序後的序列
``````````````````````
改進後的冒泡演算法:
import改進前和改進後的冒泡演算法進行對比:random
def bubble_sort_1(li): #
上個演算法的改進,用於極端情況,例如已經拍好的序列
for i in range(len(li)-1):
exchange=false
for j in range(len(li)-i-1):
if li[j]>li[j+1]:
li[j],li[j+1]=li[j+1],li[j]
exchange=true
ifnot
exchange: # 如果沒有交換就直接退出
break
data=list(range(1000))
random.shuffle(data)
bubble_sort_1(data)
print(data)
import random #view code隨機模組
import
time
def cal_time(func): #
裝飾器 ,用來檢測演算法所執行的時間
t1=time.time()
result=func(*args,**kwargs)
t2=time.time()
print("
%s running time: %s secs.
" %(func.__name__,t2-t1))
return
result
return
@cal_time
def bubble_sort(li): #
##################################氣泡排序#####################################
for i in range(len(li)-1): #
多少趟for j in range(len(li)-i-1): #
一趟裡多少次
if li[j]>li[j+1]: #
公升序排列 " < " 為降序排列
li[j],li[j+1]=li[j+1],li[j] #
互換數#
data=list(range(1000)) # 1000個數
#random.shuffle(data) # 打亂這個序列
#bubble_sort(data) # 將打亂後的序列傳送到冒泡演算法函式
#print(data) # 列印排序後的序列
@cal_time
def bubble_sort_1(li): #
上個演算法的改進,用於極端情況,例如已經拍好的序列
for i in range(len(li)-1):
exchange=false
for j in range(len(li)-i-1):
if li[j]>li[j+1]:
li[j],li[j+1]=li[j+1],li[j]
exchange=true
ifnot
exchange:
break
data=list(range(1000))
random.shuffle(data)
bubble_sort(data)
bubble_sort_1(data)
print(data)
列印後的效果為
``````````````````````
lowB三人組演算法 氣泡排序 選擇排序 插入排序
時間複雜度 o n2 演算法穩定 實現點 時時比較,時時交換 def bubble sort li for i in range len li 1 第i趟 exchange false for j in range len li i 1 if li j li j 1 li j li j 1 li j...
演算法3(low B三人組)
首先,列表每兩個相鄰的數,如果前邊的比後邊的大,那麼交換這兩個數 時間複雜度 o n2 def bubble sort lis 氣泡排序 param lis 無序列表 return 有序的從小到大的列表 for i in range 0,len lis 1 可能存在列表已經排好的情況,加標記 exc...
排序演算法之low B三人組
列表排序 將無序列表變成有充列表 應用場景 各種榜單,各種 給二分法排序使用,給其他演算法使用 輸入無序列表,輸出有序列表 公升序或降序 排序low b三人組 首先,列表每兩個相鄰的數做比較,如果前邊的數比後邊的數大,那麼交換這兩個數 def bubble sort l1 for i in rang...