java演算法 折半查詢 遞迴演算法和非遞迴演算法

2021-08-27 07:17:23 字數 699 閱讀 3040

package ceshi;

public class bisearch {

/*** @param args

*//* 折半查詢--當查詢表是有序表時,可採用折半查詢;

基本思想:在有序表中,取中間元素作為比較物件,若給定值k與中間記錄關鍵字相等,則查詢成功;

若給定值k小於中間記錄的關鍵字,則在表的左半區繼續查詢;

若給定值k大於中間記錄的關鍵字,則在表的右半區繼續查詢,不斷重複,直到查詢成功/失敗。

*/ //折半查詢非遞迴演算法

//查詢成功返回該物件的下標序號,失敗時返回-1。

int bisearch(int r,int n,int k)

{ int low=0;

int high=n-1;

while(low<=high)

{ int mid=(low+high)/2;

if(r[mid]==k)

return mid;

else

if(r[mid]high)

return -1;

else

{ int mid=(low+high)/2;

if(r[mid]==k)

return mid;

else

if(r[mid]

undoner(小傑部落格) :

lsoft.cn(琅軟中國) :

折半查詢的遞迴演算法

可能很多地方做得不好,希望大家給我意見。這個演算法是用c 寫的折半查詢的演算法,用的是遞迴演算法。演算法 折半查詢的遞迴演算法 includeusing namespace std define maxsize 100 define ok 1 typedef structelemtype typed...

java演算法之折半查詢

int mid low high 2 0 6 2 3 a mid a 3 20 因為 num a mid 所以 low mid 1 4 high 6 step2 mid 4 6 2 5 a mid a 5 35 因為 num a mid 所以 low mid 1 high 6 step3 mid l...

查詢演算法 折半查詢演算法

折半查詢演算法 binary search param a 乙個有序的集合 本次為由小到大 param x 需要查詢的值 ps 首先使用折半演算法的時候 集合必須是有序的 eg a 1,3,5,7,9 x 3 a mid low height 1,3,5,7,9 2 0 1 1,3 0 1 1 3 ...