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