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...