我可以使用分而治之的二進制搜索找到我想要的號碼,但我怎麼能找到原始數組中的個數指標,而無需使用for循環和的indexOf?如何在分而治之的二進制搜索中找到數字的索引?
function search(array, value) {
var midpoint = Math.floor(array.length/2)
if (value > array[midpoint]) {
var slicedArray = array.slice(midpoint)
} else {
var slicedArray = array.slice(0,midpoint)
}
return slicedArray[Math.floor((slicedArray.length/2))] === value ? value : search(slicedArray, value)
}
console.log(search([1,3,16,22,31,33,34], 34))
你有切呢?難道你不能只保留原始數組,只是移動'中點',從而保持你的索引?如果該值不在數組中,會發生什麼情況? –