今天,我參加了一次採訪,面試官問我如何在預先排序的數組中找到給定值(數字)的索引,如下所示:查找預先排序的數組中的給定值的索引
$preSortedArr=array(23,32,36,41,45,54);
他還表示,使用遞歸是不允許的。
我認爲功能應該是這樣的:
function findIndexByValue($preSortedArray,$value){
//some codes here
}
你怎麼想的解決方案,他從我的期待?
編輯:對不起,我忘了補充說,他原本要我寫僞代碼,但我說我不知道。然後我試圖用PHP編寫它,但我認爲他期待着一種獨立於語言的解決方案。
我同意史蒂夫在這一個。通常我會說使用array_search,但他正在尋找思想過程而不是php函數。 – 2010-03-16 13:11:40
@John然後面試官或OP使用了一個非常糟糕的例子:) – Gordon 2010-03-16 13:13:24
我想這真的取決於這是否是「你知道PHP嗎?」問題,還是「你知道算法嗎?」題。如果他只是在尋找'array_search',爲了證明你知道PHP,那麼數組排序的事實是無關緊要的,對遞歸的禁止也是無關緊要的。但實際上,這是類似於這個例子的數組的正確答案。也許他已經爲'array_search'做好了準備,並且有一個後續問題,「如果數組包含一百萬個值呢?」。 – 2010-03-16 13:15:17