遞迴與分治策略之二分搜尋(Java版本)

2021-06-12 21:26:51 字數 574 閱讀 5372

/**

* 遞迴二分搜尋

* @param a 待搜尋陣列,該陣列假設為公升序陣列。

* @param l 待搜尋陣列的最小下標

* @param r 待搜尋陣列的最小下標

* @param x 所查詢的數值

* @return 返回陣列中元素的位置,如果沒有該元素,返回-1

*/private int recursivesearch(int a,int l,int r,int x)else if (a[middle]< x)else if (a[middle] > x)

}else

return rt;

}/**

* 非遞迴二分查詢

* @param a 待搜尋陣列,該陣列假設為公升序陣列。

* @param x 所查詢的數值

* @return 返回陣列中元素的位置,如果沒有該元素,返回-1

*/private int plainsearch(int a,int x)else if (a[middle] > x)else if(a[middle] < x)

}return -1;

}

遞迴與分治策略之二分搜尋演算法

二分搜尋演算法是運用分治策略的典型例子 二分搜尋演算法充分利用了元素之間的次序關係 二分搜尋的演算法是基於有序列 採用分治策略,可在最壞情況下用o logn 時間完成搜尋任務。templateint binarysearch t a,const t x,int n return 1 如果用遞迴的細想...

遞迴 分治策略 二分查詢的遞迴與非遞迴

規模問題 分治策略,將乙個難以解決的規模大的問題,分解成一些規模較小的相同問題 includeusing namespace std int fac unsigned int n 用遞迴解決階乘 int fun unsigned int n 用迴圈解決階乘 return sum int main e...

分治演算法 二分搜尋

一.演算法簡介 以有序表表示靜態查詢表時,查詢函式可以用二分查詢 binary search orhalf intervalsearch 來實現。這種演算法基於分治。二 複雜度分析 二分查詢的時間複雜度是 o log n 最壞情況下的時間複雜度是 o n 三 演算法思想及步驟 二分查詢 binary...