我最近遇到了一种在排序列表中搜索数字的算法,它是这样的:
给定:一个预言机,它告诉您给定的数字是否大于或小于正在搜索的数字。
从列表中的第一个元素开始。向前跳过 1 个元素并询问预言机您是否已经超过了正在搜索的数字。
如果没有,请跳过 2 个元素并询问神谕您是否走得太远。
如果不跳过前面的 4 个元素,等等......
当您找到导致您忽略正在搜索的号码的第一个跳过时,您可以确定包含正在搜索的号码的子区间。
最后,对子区间进行二分查找。
我想知道这个算法叫什么,以便我可以对它做更多的研究。
谢谢