バイナリ検索を使用して、配列内の指定された番号の添え字を見つけます
入力形式:
最初の行にnとmを入力して、配列にn個のデータがあることを示し、mはm個の数値を検索することを示します。
出力形式:
すべての出力は1行で完了し、余分なスペースはなく、行の終わりに余分なキャリッジリターンがあります。
入力サンプル:
5 5
1 2 3 4 5
1 2 3 4 5
サンプル出力:
0 1 2 3 4
最初は、脳の地図はありません、ああ、これ、TEL。scanf、printf、ah this、まだTELを変更してから、バイナリ検索を作成します。忘れて、書いてはいけません。ライブラリ関数を直接呼び出すだけです。
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n,m;
scanf("%d %d",&n,&m);
int a[n];
for(int i = 0;i<n;i++){
scanf("%d",&a[i]);
}
int num;
scanf("%d",&num);
int pos = lower_bound(a,a+n,num)-a;
printf("%d",pos);
for(int i = 1;i<m;i++){
scanf("%d",&num);
pos = lower_bound(a,a+n,num)-a;
printf(" %d",pos);
}
return 0;
}