二分找下標

2021-10-19 19:56:19 字數 646 閱讀 5678

設n個不同的整數排好序後存於t[0:n-1]中. 若存在若干(>=0)個下標i,0<= i <=n-1, 使得t[i]=i. 設計乙個有效演算法找到這個下標. 

資料輸入: 第1行有乙個正整數n, n<=1000000, 表示有n個整數(保證在int內). 接下來一行是這n個整數.

結果輸出:t[i]=i的下標;若沒有則輸出no .注意輸出最後有個空格.

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

2↵0 1↵

以文字方式顯示

0 1 ↵

1秒64m

0

#include#include#includeusing namespace std;

const int n=1e6+5;

int n,a[n],b[n],s=0,flag=1;

void bs(int l,int r)

else if(a[mid]mid)

}}int main()

else printf("no \n");

}

找數字 遞迴,二分查詢

題目 在一從大到小排序的序列中用遞迴找乙個數在不在這序列,在輸出yes,不在輸出no 這題用了二分查詢的遞迴實現 思路 把陣列和變數都變成全域性變數方便遞迴函式修改 然後如果不可能就跳出迴圈 如果可能但現在沒找到就縮小範圍進入下乙個遞迴過程 如果找到了就輸出 includeusing namespa...

二分查詢(簡單版) 陣列下標表示

如果不是從一組隨機的序列裡查詢,而是從一組排好序的序列裡找出某個元素的位置,則可以有更快的演算法 例 11.4.折半查詢 include define len 8 int a len int binarysearch int number return 1 int main void 由於這個序列已...

二分法找數字

二分法找數字 首先我們應該了解什麼是二分法,二分法是指對於區間 a,b 上連續不斷且f f 0的函式y f,通過不斷地把函式f的零點所在的區間一分為二,使區間的兩個端點逐步逼近所求值,進而找到所求值。要完成這個操作,系統再找到之前都要不斷查詢,我們並不知道要迴圈的次數,所以我選擇用while迴圈,最...