演算法 列表查詢以及列表排序

2022-03-30 17:39:46 字數 2367 閱讀 9525

1、列表查詢:從列表中查詢指定元素

2、順序查詢:從列表第乙個元素開始,順序進行搜尋,直到找到為止。返回找到的那個索引

3、二分查詢:從有序列表的候選區data[0:n]開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。

二分查詢:時間複雜度是o(logn)

二分查詢的前提:列表是有序的

切片的複雜讀是o(n) #因為切的時候是賦值的

二分查詢示例

def

serach(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) #因為切的時候是賦值的

二分查詢示例

def

serach(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 二分查詢的前提...