SDUT OJ M 二分查詢

2021-08-18 11:21:20 字數 795 閱讀 9879

time limit: 600 ms

memory limit: 65536 kib

submit

statistic

problem description

給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。

然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出-1。

input

單組輸入。首先輸入乙個整數n(1 <= n && n <= 3000000),接下的一行包含n個數。

再接下來的一行包含乙個正整數q(1 <= q && q <= 10000),表示有q次詢問。

再接下來的q行,每行包含乙個正整數x。

output

對於每次詢問,輸出乙個整數代表答案。

sample input

5

1 3 5 7 931

58

sample output

1

3-1

#include #include int searchi ( int x, int a, int left, int right )

if(a[(left+right)/2]>x)

else if(a[(left+right)/2]else if(a[(left+right)/2]==x)

}int main()

scanf("%d",&q);

for(i=0; ireturn 0;

}

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...

二分查詢及變種二分查詢

二分查詢也稱折半查詢 binary search 它的查詢效率很好。二分查詢有乙個要求是必須採用順序儲存結構,而且表種的元素是有序的。只有滿足這個條件我們才能使用二分查詢。查詢條件 查詢區域的左邊界,小於等於查詢區域的右邊界 查詢過程 1.迴圈條件 查詢條件 2.計算序列中間下標位置 3.如果待查詢...