二分查詢演算法 遞迴 非遞迴實現

2021-06-23 02:54:18 字數 1028 閱讀 9241

package sorttest;

/***名稱:binarysearch

*功能:實現了折半查詢(二分查詢)的遞迴和非遞迴演算法.

*說明:

* 1、要求所查詢的陣列已有序,並且其中元素已實現comparable介面,如integer、string等.

* 2、非遞迴查詢使用search();,遞迴查詢使用searchrecursively();

**本程式僅供程式設計學習參考**/

class binarysearch>

/*** 非遞迴查詢

*/private int search(t key)else if(key.compareto(data[mid]) > 0)else if(key.compareto(data[mid]) == 0)

}return -1;

}/**

* 遞迴查詢

*/private int dosearchrecursively(int low , int high , t key)else if(result > 0)else if(result == 0)

}return -1;

}public int searchrecursively(t key)

public static void main(string args);

binarysearchbinsearch = new binarysearch(data);

"key index:" + binsearch.search(33) );

system.out.println("key index:" + binsearch.searchrecursively(1) );

*/string datastr = ;

binarysearchbinsearch = new binarysearch(datastr);

system.out.println("key index:" + binsearch.search("f") );

}}

二分查詢演算法(遞迴 非遞迴)

二分查詢 binary search 先來個比較官方的解釋 二分搜尋 英語 binary search 也稱折半搜尋 英語 half interval search 對數搜尋 英語 logarithmic search 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如...

二分查詢演算法(遞迴 非遞迴)

二分查詢是針對有序序列來說的,在有序序列中使用二分查詢能大大提高查詢效率。首先確定整個查詢區間的中間位置 mid 用待查關鍵字key值與中間位置的關鍵字值進行比較 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 對確定的縮小區域再按折半...

二分查詢演算法(遞迴與非遞迴實現)

二分查詢遞迴實現的原理 將陣列分為三部分,依次是中值 所謂的中值就是陣列中間位置的那個值 前,中值,中值後 將要查詢的值和陣列的中值進行比較,若小於中值則在中值前面找,若大於中值則在中值後面找,等於中值時直接返回。然後依次是乙個遞迴過程。遞迴查詢的 實現 遞迴方法實現二分查詢法.param arra...