c_cpp 二进制搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二进制搜索相关的知识,希望对你有一定的参考价值。

#include <iostream>
using namespace std;

int bs (int arr[],int l,int r,int x){
    if (l<=r){
      int m=l+(r-l)/2;
      if (l==r && arr[m]!=x)
        return -1;
      if (arr[m]==x){
        return m;
      }
      if (arr[m]>x){
        return bs(arr,l,m-1,x);
      }else 
        return bs(arr,m+1,r,x);
    }else{
      return -1;
    }
}
int main() {
    int t;
    cin>>t;
    while (t--){
	int n,x;
	cin>>n>>x;
	int arr[n];
	for (int i=0; i<n; i++){
	    cin>>arr[i];
	}
	cout<<bs(arr,0,n-1,x)<<endl;
    }
	return 0;
}

以上是关于c_cpp 二进制搜索的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 二进制搜索

c_cpp 二进制搜索

c_cpp 二进制搜索

c_cpp 二进制搜索模板

c_cpp 矩阵二进制搜索

c_cpp 二进制数组搜索