sorted一招殺
a = [3,9,12,4,5,7,8,110]
print(sorted(a,reverse=True))# true為降序
print(sorted(a,reverse=False))# revers= false為升序
print(sorted(a))#默認是false升序排列
Bubble_sort
下面看看坑死人無數的冒泡排序
內循環和外循環
每次循環依次比較大小并來回挪坑,直到把目標值放入設定坑
再剩下的那堆繼續如上操作
圈復雜度O(n2)
import time
def bubble_sort(a):
time1 = time.time()
for i in range (len(a)-1,0,-1):
for j in range (i):
if a[j] > a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
time2 = time.time()
print(a)
print(time2 - time1)
a = [9,15,7,2,1]
bubble_sort(a)
select_sort
優化一下下,因為有人說讀比寫節約資源,那么選擇排序登臺
我每一輪找最值,然后只交換最值與既定坑值
圈復雜度還是O(n2)
#比較n-1次;最多交換n-2次
# 算法不穩定,優勢較冒泡讀比寫節約資源
'''
首先在未排序的序列中找到最大(小)元素
存放到排序序列的起(終)位置
再從剩余未排序元素中繼續尋找最大(小)元素,然后放在已排序序列的末尾或前面~
'''
def select_sort(a):
for i in range (len(a)-1):
#動態標記最小索引位置
min_index = i
for j in range (i+1,len(a)):
if a[j] < a[min_index]:#每一輪找一次最小值,找到后記錄下最小值索引值
min_index = j
if min_index != i:#如果最小值索引值與預設不一致,將預設位數與本輪比較最小值做交換
a[i],a[min_index] = a[min_index],a[i]
return a
a = [99,123,2,6,9527]
select_sort(a)
print(a)