二分法查詢是常用的查詢方法。
二分法的演算法複雜度為:
二分法查詢的思路是:
1、輸入乙個排序好的序列;
2、輸入乙個需要查詢的元素;
3、求出序列的中間位置數;
4、判斷查詢元素的與中間數的大小;
5、縮小查詢範圍,可進行迭代或者迴圈。
c語言**:
#include //遞迴演算法
int recurbinary(int *a,int key,int low,int high)
//非遞迴演算法
int binary( int *a, int key, int n )
if( a[mid] == key )
return mid;
return -1;
}int main()
;int b = ;
int i;
for( i=0; ic++語言**:
#include#define n 10
using namespace std;
int main()
if(a[mid]!=x)
printf("沒找到!\n");
else
printf("找到了,在第%d項裡",mid+1);
return 0;
}
演算法學習 二分法
二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法,前提是資料結構必須先排好序,可以在資料規模的對數時間複雜度內完成查詢。但是,二分查詢要求線性表具有有隨機訪問的特點 例如陣列 也要求線性表能夠根據中間元素的特點推測它兩側元素的性質,以達到縮減問題規模的效果。舉個簡單的例子...
演算法學習 二分法拓展
例1 如何計算2 sqrt 2 的近似值?對 f x x2 f x x f x x 2來說,在x 1,2 x in 1,2 x 1,2 的範圍內,f x f x f x 是隨著x xx 的增大而增大的,這就給二分法創造了條件,由於 2 sqrt 2 是無理數,因此只能獲得它的近似值,這裡不妨以精度到...
查詢演算法 二分法
二分查詢演算法的基本思想 一.首先確定該區間的中間元素位置 mid low high 2 mid代表區間內中間元素的位置 low代表區間內最左邊元素的位置 high代表區間內最右邊元素的位置 二.將待查key元素值與中間元素mid的值 array mid 比較,如果相等,則查詢成功,否則確定新的查詢...