我有什麼應該是一個非常簡單的算法一個麻煩,但由於某種原因,我的頭不能正常工作找出一個值「適合」在一個數組中的位置?
我有數值的Array(工作量太大?):10,20, 30,40,100,1000,5000,100000]我想檢查哪一個是數組中的下一個「項目」。
例如,
給出的數字10- ,我的算法應該返回10中給出
- 數字1,我的算法應該返回10中給出的編號50
- ,我的算法應該返回100 。
- 提供的電話號碼99999999,我的算法應該返回100000
在僞代碼,我在想:
for previousValue, nextValue in values:
if (previousValue < value && nextValue >= value):
return nextValue
return values[max]
如果任何人都可以指出我疲憊的大腦,我錯過了它會很好。謝謝!
你的數組是否總是排序? –
即使沒有排序,我們也可以事先進行排序並使用二進制搜索。 – favoretti
請檢查我的答案。 –