1152 二分搜尋 非遞迴與遞迴

2021-08-03 17:59:58 字數 1002 閱讀 3768

time limit: 1 sec  

memory limit: 128 mb

submit: 1736  

solved: 634

submit

status

web board

在有序序列中查詢某一元素x。

首先輸入乙個正整數n(n<=100000),表示該序列有n個整數,然後按從小到大的順序輸入n個整數;

接著是乙個正整數m,表示有m次查詢;

最後是m個整數,表示m個要查詢的整數x。

對於每一次查詢,有一行輸出。若序列中存在要查詢的元素x,則輸出元素x在序列中的序號(序號從0開始);若序列中不存在要查詢的元素x,則輸出"not found!"。

51 3 5 7 9 11-112345678910

not found!0not found!1not found!2not found!3not found!4not found!

//非遞迴

#includeusing namespace std;

int a[100000]=;

int bsearch(int a,int x,int n);

int main ()

cin>>m;

for (i=0;i>x;

k=bsearch(a,x,n);

if (k)

couthigh = mid - 1;

else

low = mid + 1 ;

}return 0;

}

//遞迴呼叫

#includeint a[100000]=;

using namespace std;

int bsearch(int a,int x,int low,int high);

int main ()

cin>>m;

while (m--)

}

遞迴非遞迴實現二分搜尋

二分搜尋方法,充分利用了元素間的次序關係,採用分治策略。可在最壞情況下用時間o logn 時間完成搜尋。includeint binarysearch recur int br,int x,int left,int right else else if x br middle else return...

二分查詢 遞迴與非遞迴

最近做了一道題目,在弄清原理之後發現怎麼也過不去,找了幾個小時的bug,結果問題就出現在二分查詢的知識點上,暑假是有接觸過二分的題目,應該是沒有完全理解才會在昨天的那道題上碰釘子,藉此寫一下對二分的理解來鞏固鞏固以前的知識。一談起查詢,最先想到的無非是遍歷整組資料,複雜度為o n 但是對於一組有規律...

二分查詢(遞迴 非遞迴)

二分查詢是一種查詢效率非常高的查詢演算法。又稱折半查詢。起初在資料結構中學習遞迴時實現二分查詢,實際上不用遞迴也可以實現,畢竟遞迴是需要開闢額外的空間的來輔助查詢。本文就介紹兩種方法 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。使用條件 查詢序...