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