import冒泡random
from timewrap import *@cal_time
defbubble_sort(li):
for i in range(len(li) - 1):
#i 表示趟數
#第 i 趟時: 無序區:(0,len(li) - i)
for j in range(0, len(li) - i - 1):
if li[j] > li[j+1]:
li[j], li[j+1] = li[j+1], li[j]
@cal_time
defbubble_sort_2(li):
for i in range(len(li) - 1):
#i 表示趟數
#第 i 趟時: 無序區:(0,len(li) - i)
change =false
for j in range(0, len(li) - i - 1):
if li[j] > li[j+1]:
li[j], li[j+1] = li[j+1], li[j]
change =true
ifnot
change:
return
li = list(range(10000))
#random.shuffle(li)
#print(li)
bubble_sort_2(li)
print(li)
importrandom
from timewrap import *@cal_time
defselect_sort(li):
for i in range(len(li) - 1):
#i 表示趟數,也表示無序區開始的位置
min_loc = i #
最小數的位置
for j in range(i + 1, len(li) - 1):
if li[j]
min_loc =j
li[i], li[min_loc] =li[min_loc], li[i]
li = list(range(10000))
random.shuffle(li)
(li)
select_sort(li)
print(li)
選擇
import插入random
from timewrap import *@cal_time
definsert_sort(li):
for i in range(1, len(li)):
#i 表示無序區第乙個數
tmp = li[i] #
摸到的牌
j = i - 1 #
j 指向有序區最後位置
while li[j] > tmp and j >=0:
#迴圈終止條件: 1. li[j] <= tmp; 2. j == -1
li[j+1] =li[j]
j -= 1li[j+1] =tmp
li = list(range(10000))
random.shuffle(li)
(li)
insert_sort(li)
print(li)
排序演算法之low B三人組
列表排序 將無序列表變成有充列表 應用場景 各種榜單,各種 給二分法排序使用,給其他演算法使用 輸入無序列表,輸出有序列表 公升序或降序 排序low b三人組 首先,列表每兩個相鄰的數做比較,如果前邊的數比後邊的數大,那麼交換這兩個數 def bubble sort l1 for i in rang...
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...