模板 二分查詢

2021-10-02 09:02:22 字數 1002 閱讀 4072

題目描述

給定乙個包含n個整數的數列和包含m個不重複整數的數列。

輸出既包含於也包含於的整數的個數k。

輸入格式

輸入共4行:

第1行僅包含乙個正整數n;

第2行包含n個整數ai,數字之間用乙個空格分隔;

第3行僅包含乙個正整數m;

第4行包含m個整數bi,數字之間用乙個空格分隔。

輸出格式

輸出僅包含乙個整數k。

輸入樣例 151

2345

3341

輸出樣例 13提示

【資料範圍】

0< n ≤ 100

,000

0< m ≤ 50

,000

0 ≤ ai,bi ≤ 10

^9

這是一道模板題,考察二分查詢

在此提供模板:

int

search

(int a,

int key,

int n)

return-1

;}

在上面的模板中,key代表要查詢的量,a是將要進行查詢的陣列,na中的元素個數

附:如資料無序,則需要設結構體node,用來儲存在陣列中的位置與數值

此題完整**:

#include

#include

using

namespace std;

int a[

100001

],b[

50001];

intbin

(int a,

int key,

int n)

return-1

;}intmain()

cout

}

二分查詢模板

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。演算法思路 假設目標值在閉區間 l,r 中,每次將區間長度縮小一半,當l r時,我們就找到了目標值。模板一當區間 l,r 的更新操作是r mid l mid 1 時,計算mid時不需要加1。int bsearch 1 in...

二分查詢模板

例如陣列中查詢乙個數 二分查詢的前提是整個陣列是有序的 模板 int a n int l 0,r n 1 int mid,key while l r 另外還有一些二分查詢函式 a.函式模板 binary search arr,arr size indx c.函式功能 在陣列中以二分法檢索的方式查詢,...

二分查詢模板

二分查詢模板總共有兩個 將區間分為 l,mid l,mid l,mid mid 1,r mid 1,r mid 1 r 時,如下 while l r else 將區間分為 l,mid 1 l,mid 1 l,mid 1 mi d,r mid,r mid,r 時,如下 while l r else 對...