以非常有效的方式查找值的方法名称是什么

时间:2014-10-09 03:09:22

标签: arrays sorting find

如果你有一个包含大量排序 int值的表/数组,并且你想找到一个,而不是一个一个地去,我知道有一个非常有效的方法可以做到这一点:首先,它转到中间元素。如果元素值大于搜索到的值,则忽略此元素之上的所有元素,然后向下到中间。否则它会上升到中间。并继续这样做,直到找到该值。

在伪中它会是这样的

searched_value = X
actual_index = length(array)/2
offset = actual_index

while(true){

    if array[actual_index] = searched_value then return actual_index

    if array[actual_index] > searched_value then
        offset = round_down( offset / 2 )
        actual_index = actual_index - offset
    else
        offset = round_up( offset / 2 )
        actual_index = actual_index + offset

}

我知道这个方法有一个名字,但我无法记住它。

1 个答案:

答案 0 :(得分:2)

我相信你正在考虑二元搜索。

我不知道您正在使用哪种语言,但可能会有API调用。