2013-10-02 21 views
-3

请问任何机构都有java inplementation exponentail搜索?我无法找到关于该算法的任何有关如何实现它的想法?喜欢的东西:指数搜索?

* Signature method that must implement exponential search. 
* @ Param searchArray integer array in ascending. 
* @ Param x integer element to search for. 
* @ Return integer containing the position in the array <CODE> searchArray <\ CODE> 
* In case the element <CODE> x <\ CODE> be located in this otherwise 
* <CODE> Returns NOT_FOUND </ CODE> 

public int exponentialSearch (int [] searchArray, int x); 
+1

你的意思是对数搜索?由于数组是预分类的,因此可以在log(N)时间内搜索(请参阅@Makato答案)。也许沿着“对数”这一行被翻译成“指数”或某些类似的地方。 – user949300

+0

目前还不清楚你在寻找什么。值x?这可以在线性时间完成。指数算法效率会低得多...... –

回答

0

我愿意打赌,而不是指数的搜索,这是一个binary search服用,其中的数据已经升序排列。

它大致步骤如下:

  • 你开始在定义为您的阵列由2
  • 分长度的地板上的点比较,你要查找的值的点。
  • 如果匹配,则返回您找到它的位置。
  • 如果更小,从0到您的起点(独占)的数组的子集,并重复上述步骤。
  • 如果更大,从起点+ 1和数组的其余部分取数组的子集,并重复上述步骤。