今天去面试,面试官问我如何在这样的预排序数组中找到给定值(数字)的索引:
$preSortedArr=array(23,32,36,41,45,54);
他还说不允许使用递归。
我认为函数应该是这样的:
function findIndexByValue($preSortedArray,$value){
//some codes here
}
您认为他希望我提供什么解决方案?
编辑: 对不起,我忘了补充一点,他最初让我写伪代码,但我说我不知道。然后我尝试用 PHP 编写它,但我认为他期望的是独立于语言的解决方案。
最佳答案
既然他说数组是预先排序的,他可能期待二分查找。线性搜索(由于数组已排序 - 可能会进行优化 - 如果找到更大的值则失败退出)在示例中的小数组上当然是完美的。如果重要的话,可能会更快。
关于php - 在预排序数组中查找给定值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2454499/