演算法學習 二分法查詢

2021-07-05 08:22:24 字數 685 閱讀 7999

二分法查詢是常用的查詢方法。

二分法的演算法複雜度為:

二分法查詢的思路是:

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 比較,如果相等,則查詢成功,否則確定新的查詢...