python查詢演算法

2021-10-08 09:56:19 字數 2817 閱讀 2639

# 返回 x 在 arr 中的索引,如果不存在返回 -1

defbinarysearch

(arr, l, r, x)

:# 基本判斷

if r >= l:

mid =

int(l +

(r - l)/2

)# 元素整好的中間位置

if arr[mid]

== x:

return mid

# 元素小於中間位置的元素,只需要再比較左邊的元素

elif arr[mid]

> x:

return binarysearch(arr, l, mid -

1, x)

# 元素大於中間位置的元素,只需要再比較右邊的元素

else

:return binarysearch(arr, mid +

1, r, x)

else

:# 不存在

return-1

# 測試陣列

arr =[2

,3,4

,10,40

]x =

10# 函式呼叫

result = binarysearch(arr,0,

len(arr)-1

, x)

if result !=-1

:print

("元素在陣列中的索引為 %d"

% result)

else

:print

("元素不在陣列中"

)# 時間複雜度o(log n)

def

search

(arr, n, x)

:for i in

range(0

, n):if

(arr[i]

== x)

:return i

return-1

# 在陣列 arr 中查詢字元 d

arr =

['a'

,'b'

,'c'

,'d'

,'e'

]x =

'd'n =

len(arr)

result = search(arr, n, x)

if(result ==-1

):print

("元素不在陣列中"

)else

:print

("元素在陣列中的索引為"

, result)

# -*- coding: utf-8 -*-

# filename : test.py

# author by : www.runoob.com

# python 斐波那契數列實現

# 獲取使用者輸入資料

nterms =

int(

input

("你需要幾項?"))

# 第一和第二項

n1 =

0n2 =

1count =

2# 判斷輸入的值是否合法

if nterms <=0:

print

("請輸入乙個正整數。"

)elif nterms ==1:

print

("斐波那契數列:"

)print

(n1)

else

:print

("斐波那契數列:"

)print

(n1,

",", n2, end=

" , "

)while count < nterms:

nth = n1 + n2

print

(nth, end=

" , "

)# 更新值

n1 = n2

n2 = nth

count +=

1

def

binary_search

(lis, key)

: low =

0 high =

len(lis)-1

time =

0while low < high:

time +=1#

mid = low +

int(

(high - low)

*(key - lis[low])/

(lis[high]

- lis[low]))

print

("mid=%s, low=%s, high=%s"

%(mid, low, high)

)if key < lis[mid]

: high = mid -

1elif key > lis[mid]

: low = mid +

1else:#

print

("times: %s"

% time)

return mid

print

("times: %s"

% time)

return

false

list =[1

,5,7

,8,22

,54,99

,123

,200

,222

,444

]result = binary_search(list,

444)

print

(result)

**僅供參考,禁止抄襲

python查詢演算法

1.順序查詢 順序查詢也稱為線形查詢,屬於無序查詢演算法。從資料結構線形表的一端開始,順序掃瞄,依次將掃瞄到的結點關鍵字與給定值相比較,若相等則表示查詢成功 若掃瞄結束仍沒有找到關鍵字等於給定值的結點,表示查詢失敗。def line search data,num for index,val in ...

python查詢演算法

usr bin env python 順序查詢 def seqsearch nums,key length len nums for i in range length if nums i key return i else return 1 lst 12,32,0,9,333,42,123,88 ...

查詢演算法(Python實現)

在日常生活中,幾乎每天都要進行一些查詢的工作,在 簿中查閱某個人的 在電腦的資料夾中查詢某個具體的檔案等等。查詢表是由同一型別的資料元素構成的集合。例如 號碼簿和字典都可以看作是一張查詢表。一般對於查詢表有以下幾種操作 在查詢表中查詢某個具體的資料元素 在查詢表中插入資料元素 從查詢表中刪除資料元素...