数据结构-怀化学院期末题(489)

题目描述:

实现折半查找。要求查找给定的值在数据表中相应的存储位置。本题目假定输入元素均按非降序输入。
输入:
输入包含若干个测试用例,第一行为测试用例个数k。每个测试用例占3行,其中第一行为元素个数n,第二行为n个元素值,即数据表中的元素,第三行为需要查找的元素。
输出:
对每一测试用例,分别用一行输出两个值,分别表示相应的位置和查找次数,用空格隔开。如果查找不成功,则位置表0表示。 

输入样例:

 1
5
1 2 4 7 9
4

输出样例:

3 1  

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<map>
using namespace std;
typedef pair<int,int> PII;
const int N = 1e5 + 10;

int main(){
	int k;
	cin >> k;
	while(k --){
		int n;
		cin >> n;
		int a[1024];
		for(int i = 1;i <= n;i ++){
			cin >> a[i];
		}
		int num;
		cin >> num;
		int sum = 0;
		int l = 1,r  = n;
		while(l < r){
			int mid = l + r + 1  >> 1;
			if(a[mid] > num) r = mid - 1 ;
			else l = mid;
			sum ++;
		}
		cout << r << ' ' << sum-1 << endl;
	}
	return 0;
}

板子:

 
// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:
int bsearch_1(int l, int r)
{
    while (l < r)
    {
        int mid = l + r >> 1;
        if (check(mid)) r = mid;    // check()判断mid是否满足性质
        else l = mid + 1;
    }
    return l;
}
 
// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:
int bsearch_2(int l, int r)
{
    while (l < r)
    {
        int mid = l + r + 1 >> 1;
        if (check(mid)) l = mid;
        else r = mid - 1;
    }
    return l;
}

 

 

相关推荐

  1. 数据结构-怀化学院期末489

    2024-01-06 16:34:02       55 阅读
  2. 数据结构-怀化学院期末(59)

    2024-01-06 16:34:02       54 阅读
  3. 数据结构-怀化学院期末(34)

    2024-01-06 16:34:02       50 阅读
  4. 数据结构-怀化学院期末(58)

    2024-01-06 16:34:02       62 阅读
  5. 数据结构-怀化学院期末

    2024-01-06 16:34:02       50 阅读
  6. 数据结构-怀化学院期末(56)

    2024-01-06 16:34:02       52 阅读
  7. 数据结构-怀化学院期末(1321)

    2024-01-06 16:34:02       62 阅读
  8. 数据结构-怀化学院期末

    2024-01-06 16:34:02       45 阅读
  9. 数据结构-怀化学院期末(490)

    2024-01-06 16:34:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 16:34:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 16:34:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 16:34:02       87 阅读
  4. Python语言-面向对象

    2024-01-06 16:34:02       96 阅读

热门阅读

  1. 【Python_PySide学习笔记(目录)】

    2024-01-06 16:34:02       55 阅读
  2. 数据结构 第三章节 栈和队列

    2024-01-06 16:34:02       48 阅读
  3. 上海计算机学会2023年12月月赛C++乙组T2树的染色

    2024-01-06 16:34:02       57 阅读
  4. 项目执行常用的ChatGPT通用提示词模板

    2024-01-06 16:34:02       63 阅读