二分查詢遞迴實現的原理:將陣列分為三部分,依次是中值(所謂的中值就是陣列中間位置的那個值)前,中值,中值後;將要查詢的值和陣列的中值進行比較,若小於中值則在中值前面找,若大於中值則在中值後面找,等於中值時直接返回。然後依次是乙個遞迴過程。
遞迴查詢的**實現:
/**
* 遞迴方法實現二分查詢法.
*@param array陣列
*@param low 陣列第一位置
*@param high 最高
*@param key 要查詢的值.
*@return 返回值.
*/int binsearch(int array,int low,int high,int key)
else
return -1;
}
當然也可以使用非遞迴的方法實現。
/*
* 非遞迴二分查詢演算法
* 引數:整型陣列,需要比較的數.
*/public
static
intbinarysearch(integersrcarray,int des)else
if(des1;
//移動最低的"指標"
}else
} return -1;
} }
二分查詢演算法 遞迴 非遞迴實現
package sorttest 名稱 binarysearch 功能 實現了折半查詢 二分查詢 的遞迴和非遞迴演算法.說明 1 要求所查詢的陣列已有序,並且其中元素已實現comparable介面,如integer string等.2 非遞迴查詢使用search 遞迴查詢使用searchrecurs...
二分查詢演算法(遞迴 非遞迴)
二分查詢 binary search 先來個比較官方的解釋 二分搜尋 英語 binary search 也稱折半搜尋 英語 half interval search 對數搜尋 英語 logarithmic search 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如...
二分查詢演算法(遞迴 非遞迴)
二分查詢是針對有序序列來說的,在有序序列中使用二分查詢能大大提高查詢效率。首先確定整個查詢區間的中間位置 mid 用待查關鍵字key值與中間位置的關鍵字值進行比較 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 對確定的縮小區域再按折半...