判斷數值是否在數列中的方法

2021-07-03 18:12:01 字數 855 閱讀 6633

問題:已知數值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 ...