1、列表查詢:從列表中查詢指定元素
2、順序查詢:從列表第乙個元素開始,順序進行搜尋,直到找到為止。返回找到的那個索引
3、二分查詢:從有序列表的候選區data[0:n]開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。
二分查詢:時間複雜度是o(logn)
二分查詢的前提:列表是有序的
切片的複雜讀是o(n) #因為切的時候是賦值的
二分查詢示例
defserach(li,val):
low = 0 #
開始索引
high = len(li) - 1 #
結束索引
while low<=high:
mid = (low+high)//2
if li[mid] > val: #
如果中間值比傳進來的值大就從中間值的左邊找
high = mid-1
elif li[mid]low = mid +1
else
:
return
mid
else
:
return -1li = list(range(0,101,2))
print(serach(li,98))
#***************===遞迴版的二分查詢**********=
defbin_serach_rec(li,val,low,high):
if low<=high:
mid = (low+high)//2
if li[mid] >val:
return bin_serach_rec(li,val,low,mid-1,)
elif li[mid]return bin_serach_rec(li,val,mid+1,high)
else
:
return
mid
else
:
return
li = list(range(0,101,2))
print(serach(li,98))
1、列表排序
將無序列表變為有序列表
2、應用場景
輸入:無序列表
輸出:有序列表
1、列表查詢:從列表中查詢指定元素
2、順序查詢:從列表第乙個元素開始,順序進行搜尋,直到找到為止。返回找到的那個索引
3、二分查詢:從有序列表的候選區data[0:n]開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。
二分查詢:時間複雜度是o(logn)
二分查詢的前提:列表是有序的
切片的複雜讀是o(n) #因為切的時候是賦值的
二分查詢示例
defserach(li,val):
low = 0 #
開始索引
high = len(li) - 1 #
結束索引
while low<=high:
mid = (low+high)//2
if li[mid] > val: #
如果中間值比傳進來的值大就從中間值的左邊找
high = mid-1
elif li[mid]low = mid +1
else
:
return
mid
else
:
return -1li = list(range(0,101,2))
print(serach(li,98))
#***************===遞迴版的二分查詢**********=
defbin_serach_rec(li,val,low,high):
if low<=high:
mid = (low+high)//2
if li[mid] >val:
return bin_serach_rec(li,val,low,mid-1,)
elif li[mid]return bin_serach_rec(li,val,mid+1,high)
else
:
return
mid
else
:
return
li = list(range(0,101,2))
print(serach(li,98))
1、列表排序
將無序列表變為有序列表
2、應用場景
輸入:無序列表
輸出:有序列表
演算法 列表排序
乙個計算過程,解決問題的方法。用來評估演算法執行效率的 執行的大該次數 用來評估演算法記憶體占用大小的式子 列表每兩個相鄰的數,如果前邊的比後邊的大,那麼就交換這兩個數的位置。每圈的次數裡少排乙個。氣泡排序 時間複雜度 o n 2 圈數 元素個數 1 次數 元素個數 1 圈數索引 選擇排序 時間複雜...
筆記 列表為鍵構建字典以及列表排序
字典一般取值 dict age age dict age 27 將列表內元素作為鍵,將出現次數作為值 構建字典 dict list 床前 明月光 疑是 地上 霜 舉頭 望明月 低頭 思 故鄉 for i in list dict i dict.get i,0 1 python 字典 dictiona...
列表查詢以及二分查詢
一 列表查詢 1 列表查詢 從列表中查詢指定元素 2 順序查詢 從列表第乙個元素開始,順序進行搜尋,直到找到為止。返回找到的那個索引 3 二分查詢 從有序列表的候選區data 0 n 開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。二分查詢 時間複雜度是o logn 二分查詢的前提...