遞迴-M--二分查詢
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 9 3 1 5 8
Sample Output
1 3 -1
#include<stdio.h>
#include<stdlib.h>
int a[10000001];
int search(int l,int r,int target){
while(l <= r){
int mid = (l + r) /2;
if(a[mid] == target){
return mid + 1;
}else if(a[mid] < target){
l = mid + 1;
}else if(a[mid] > target){
r = mid - 1;
}
}
return -1;
}
int main(){
int b,c,d;
scanf("%d",&b);
for(int i = 0 ; i < b ; i++){
scanf("%d",&a[i]);
}
//sort(0,b-1);
scanf("%d",&c);
while(c--){
scanf("%d",&d);
printf("%d\n",search(0,b-1,d));
}
return 0;
}
相關文章
- 【演算法拾遺】二分查詢遞迴非遞迴實現演算法遞迴
- 二分法查詢(遞迴實現)遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- PostgreSQL 遞迴查詢SQL遞迴
- PostgreSQL=>遞迴查詢SQL遞迴
- SqlServer遞迴查詢SQLServer遞迴
- ORACLE 遞迴查詢Oracle遞迴
- sqlalchemy 遞迴查詢SQL遞迴
- Python遞迴函式,二分查詢演算法Python遞迴函式演算法
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- SQL Server遞迴查詢SQLServer遞迴
- Oracle遞迴查詢sqlOracle遞迴SQL
- 一個遞迴查詢遞迴
- 遞迴查詢子元素遞迴
- sql無限遞迴查詢SQL遞迴
- grep遞迴查詢子目錄遞迴
- sql遞迴查詢子級SQL遞迴
- Oracle SQL的遞迴查詢OracleSQL遞迴
- java-遞迴(檔案查詢)Java遞迴
- MS SQL Server的遞迴查詢SQLServer遞迴
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- 遞迴樹形查詢所有分類遞迴
- 我對Postgresql遞迴查詢的理解SQL遞迴
- 11GR2遞迴With子查詢遞迴
- Mysql 實現樹狀遞迴查詢MySql遞迴
- MS SQL Server的遞迴查詢(2)SQLServer遞迴
- 查詢——二分查詢
- iOS 演算法之排序、查詢、遞迴iOS演算法排序遞迴
- 資料庫遞迴查詢:MySQL VS Sequelize資料庫遞迴MySql
- 透過遞迴查詢應用依賴遞迴
- Java實現遞迴查詢樹結構Java遞迴
- Sql Server 使用CTE實現遞迴查詢SQLServer遞迴
- SQL with as 的用法 以及遞迴函式的寫法 遞迴層次查詢SQL遞迴函式
- 二分查詢(一)——純粹的二分查詢
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- Python查詢-二分查詢Python
- 二分查詢