一、列表查詢
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、應用場景
輸入:無序列表
輸出:有序列表
列表查詢以及二分查詢
一 列表查詢 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...