列表查詢以及二分查詢

2022-04-29 14:39:06 字數 2423 閱讀 4615

一、列表查詢

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、應用場景

輸入:無序列表

輸出:有序列表

列表查詢以及二分查詢

一 列表查詢 1 列表查詢 從列表中查詢指定元素 2 順序查詢 從列表第乙個元素開始,順序進行搜尋,直到找到為止。返回找到的那個索引 3 二分查詢 從有序列表的候選區data 0 n 開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。二分查詢 時間複雜度是o logn 二分查詢的前提...

列表查詢及二分查詢

描述順序查詢與二分法 折半搜尋 的概念以及用python實現其查詢流程 1.什麼是順序查詢 當資料儲存在諸如列表的集合中時,我們說這些資料具有線性或順序關係。每個資料元素都儲存在相對於其他資料元素的位置。由於這些索引值是有序的,我們可以按順序訪問它們。這個過程產實現的搜尋即為順序查詢。2.順序查詢原...

順序查詢以及二分查詢

include include define list init size 100 define listincrement 10 define ok 1 define error 0 define overflow 2 define eq a,b a b define lt a,b a b def...