常見的查詢演算法的原理及python實現

2022-08-14 20:06:15 字數 1499 閱讀 5280

data=[1,3,4,5,6]

value=1

def linear_search(data,value):

flag=false

for i in range(0,len(data)):

if data[i]==value:

# return i

flag=true

print('找到了,在第%s個位置'%i)

if not flag:

print('查詢失敗')

# linear_search(data,value)

遞迴:(效率不高)

遞迴需要有結束條件(len(data)<=1),每一次遞迴的問題規模都減小

改變的是每次傳入的data

#遞迴實現

def bin_search2(data,value):

mid=len(data)/2

if len(data)>1:

if value>data[mid]:

bin_search2(data[mid+1:],value)

elif value非遞迴:

改變的是low和high指標的指向

#練習info=[,,

,]def bin_search(data,value):

low=0

high=len(data)-1

while low<=high:

mid=(low+high)//2

if data[mid]['id']==value:#取字典的value 用dic[key]

return (mid,data[mid])

elif data[mid]['id']

low=mid+1

else:

high=mid-1

else:

return (0,none)#根據返回值判斷是否查到這個人

while true:

id=int(input('請輸入需要查詢的學號(退出請按q):').strip())

# print(type(id))

if id=='q':

break

else:

num,info=bin_search(info,id)

if info=='none':

print('查無此人')

else:

print('info:%s'%info)

常見的查詢演算法

一 直接查詢 1.1 實現原理 從第乙個開始,依次向後挨個對比,直到找到所需的字元為止。1.2 時間複雜度 o n 其中n是字元的總個數。1.3 實現 public class directfind int target 74 for int i 0 iif target array i 二 二分法...

hash演算法原理及常見函式

hash,一般翻譯做 雜湊 也有直接音譯為 雜湊 的,就是把任意長度的輸入,通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。雜湊表,它是基於快速訪問的角度設計的,也是一種典型的 空間換時間 的做法。顧名思義,該資料結構可以理解為乙個線性表,但是其中的元素不是緊密排列的,而是可能存在空隙。雜湊...

常見hash演算法的原理

分類 演算法和資料結構 2011 11 22 13 12 1579人閱讀收藏 舉報雜湊表,它是基於快速訪問的角度設計的,也是一種典型的 空間換時間 的做法。顧名思義,該資料結構可以理解為乙個線性表,但是其中的元素不是緊密排列的,而是可能存在空隙。雜湊表 hash table,也叫雜湊表 是根據關鍵碼...