列表查詢的兩種方法

2022-07-25 06:12:07 字數 1002 閱讀 8893

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

輸入:列表、待查詢元素

輸出:元素下標或未找到元素

二分查詢

1.順序查詢**:(時間複雜度為o(n))

def linear_search(data_set, value):

for i in

range(len(data_set)):

if value ==data_set[i]:

return

i

return

2.二分查詢**:(時間複雜度為o(logn))

def binary_search(data_set, low, high, val):

while low <=high:

mid = (low + high) //

2if data_set[mid] ==val:

return

mid elif val >data_set[mid]: # 值在列表右邊

low = mid + 1

else

: # 值在列表左邊

high = mid -1

return

遞迴版本的二分查詢

def binary_search2(data_set, low, high, val):

if low <=high:

mid = (low+high) //

2if data_set[mid] ==val:

return

mid elif val

binary_search2(data_set, low, mid-1

, val)

else

: binary_search2(data_set, mid+1

, high, val)

else

:

return

ORACLE 遞迴查詢的兩種方法。

1.我們建乙個表 test2 舉例說明 oracle 遞迴查詢的兩種方法。資料結構如下 2.我們的目標是查詢a1下面所有的子節點和所處層級。a.通用做法 寫乙個遞迴sql 如下 select t.level from test2 t start with t.father a1 connect by...

mysql多表查詢的兩種方法

為什麼要用多表查詢?因為我們在涉及表的時候肯定不止一張表。資料準備 建表 create table dep id int primary key auto increment,name varchar 20 create table emp id int primary key auto incre...

折半查詢c 的兩種方法實現

折半查詢在資料結構演算法中是乙個比較實用的演算法。但是它是乙個只能用於查詢有順序的數,這並不影響它的使用,可以先實現乙個排序再進行查詢。折半查詢比較簡單,但是注意的點也比較多。下面我將用遞迴和非遞迴兩種方法進行實現。非遞迴 在取頭尾時有兩種選擇 左閉右閉 begin,end 左閉右開 begin,e...