7-1二分探索(20ポイント)

バイナリ検索を使用して、配列内の指定された番号の添え字を見つけます

入力形式:
最初の行に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を変更してから、バイナリ検索を作成します。忘れて、書いてはいけません。ライブラリ関数を直接呼び出すだけです。

C ++ STLでのバイナリ検索

#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;
}

おすすめ

転載: blog.csdn.net/weixin_45845039/article/details/110951733