2013-10-02 25 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和數組的其餘部分取數組的子集,並重覆上述步驟。