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

2021-07-24 15:25:25 字數 749 閱讀 1996

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

遞迴查詢的**實現:

/** 

* 遞迴方法實現二分查詢法.

*@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值與中間位置的關鍵字值進行比較 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 對確定的縮小區域再按折半...