問題:已知數值5,查詢數值3是否在數列a=[5.8.10.13]中。
討論此問題,有基本的兩種解法,第一種是:線性查詢,即直接比較數值是否在數列中,其演算法如下:
#利用線性查詢的方法查詢list中的值
def search(ist,x):
for i in range(len(ist)):
if ist[1] == x:
return i
return -1
ist = [5,8,10,13]
print search(ist,5)
#顯示list的下標
上面是第一種解法,不難看出其最壞的執行時間為:k0n+k1,所以算出其時間複雜度為on.
#利用兩分查詢法查詢list中的值
def bi_search(lst, x):
low = 0
high = len(lst) - 1
while low <= high:
mid = (low + high)/2
if lst[mid] == x:
return mid
elif ist[mid] > 1:
high = mid -1
else:
low = mid + 1
return -1
ist = [5,8,10,13]
print bi_search(ist,5)
#顯示list的下標
其時間複雜為:olog2n
_____________最後的話,作為某三線網際網路公司hr,此題目是我們考察候選人的第一道筆試題,但是在實際過程中,我們發現很多候選人的演算法能力都非常薄弱,在這道題的解法上,只能用線性查詢來實現該演算法——
php在陣列中判斷某個值是否存在
php在陣列中查詢指定值是否存在的方法有很多,記得很久以前我一直都是傻傻的用foreach迴圈來查詢的,下面我主要分享一下用php內建的三個陣列函式來查詢指定值是否存在於陣列中,這三個陣列分別是 in array array search array key exists 首先分別介紹一下各自的定義...
js如何判斷某個值是否在陣列中
很簡單,定義乙個陣列,判斷下就得了。var arraylist 1,2,3,4 arraylist indexof 2 返回0 arraylist indexof 6 返回1 注意indexof是區分大小寫的,字母o必需大寫,不然是會報錯的,另外,該方法在某些版本的ie中是不起作用的,因此在使用之前...
js 判斷乙個值是否在陣列中
js判斷乙個值是否存在陣列中 瓊臺部落格 定義乙個判斷函式 var in array function arr 遍歷是否在陣列中 for var i 0,k arr.length i 如果不在陣列中就會返回false return false 給字串新增原型 string.prototype.in ...