題目描述
輸入兩個數n和q,分別表示n個正整數和q次查詢
每次查詢乙個數字x,輸出有多少數比x小,有多少個數比x大.
輸入格式
第一行輸入 n和q(整數)
第二行輸入 n個正整數
第三行輸入 q個正整數
輸出格式
q行 每行兩個整數
為小於、大於的數
樣例輸入
10 2
2 8 3 4 1 9 2 7 4 6
5 1樣例輸出
6 40 9
提示比5小的有1、2、2、3、4、4
比5大的有6、7、8、9
資料範圍:
1≤n≤1051≤n≤105
1≤q≤1051≤q≤105
1≤x≤109
#include
#include
using
namespace std;
const
int max=
100010
;int n,q;
int a[max]
;int
getmin
(int x)
else
l=mid+1;
}return ans-1;
}int
getmax
(int x)
else
r=mid-1;
}return n-ans;
}int
main()
return0;
}
#include
#include
using
namespace std;
const
int max=
100005
;int n,q,x;
int a[max]
;void
read()
;int
main()
void
read()
else l=mid+1;
} cout<" ";
l=1; r=n;
int max=n;
while
(l<=r)
else r=mid-1;
} cout<}
陣列高階二分查詢
查詢 1 基本查詢 陣列元素無序 從頭找到尾 2 二分查詢 折半查詢 陣列元素有序 ps 陣列的元素必須有順序,從小到大或者從大到小。以下的分析是從小到大的陣列 二分查詢分析 a 先對陣列進行對半 也就是設定 min索引為0,max索引為arr.length 1,然後對半的 索引mid為 min m...
詳解二分查詢,二分查詢基礎教程 高階練習
二分查詢,就是通過每次將查詢範圍縮小一半的方法,最終鎖定目標。話不多說,直接看最基礎的二分查詢模型 輸入 乙個有序陣列,int arr 乙個目標值,int key 輸出 目標值的索引位置 二分查詢本質上是乙個遞迴查詢的過程,每一次的遞迴運算分三步 第一步,判斷陣列的正中心 center 是否為key...
迭代二分查詢二分查詢
在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...