算法:改写二分搜索算法
来源:互联网 发布:有声自动阅读软件 编辑:程序博客网 时间:2024/05/16 15:19
设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。问题来源:题目来源:《计算机算法设计与分析》王晓东
输入格式:
输入有两行:
第一行是n值和x值; 第二行是n个不相同的整数组成的非降序序列,每个整数之间以空格分隔。
输出格式:
输出小于x的最大元素的最大下标i和大于x的最小元素的最小下标j。当搜索元素在数组中时,i和j相同。 提示:若x小于全部数值,则输出:-1 0 若x大于全部数值,则输出:n-1的值 n的值
输入样例:
在这里给出一组输入。例如:
6 5
2 4 6 8 10 12
输出样例:
在这里给出相应的输出。例如:
1 2
#include<iostream>using namespace std;int BIN(int a[], int key, int n) { int left = 0; int right = n - 1; int i = 0; int j = 0; while (left <= right) { int middle = (left + right) / 2; if (key == a[middle]) { i = j = middle; cout << i <<" "<<j<<endl; //cout << t; return middle; } if (key > a[middle])left = middle + 1; else { right = middle - 1; } } i = right; j = left; cout << i<<" "<< j<<endl; return -1;}int main() { int n; int x; cin >> n>> x; int *a = new int [n]; for (int i = 0; i < n; i++) { cin >> a[i]; } BIN(a, x, n); system("pause");}
阅读全文
1 0
- 改写二分搜索算法
- 改写二分搜索算法
- 算法:改写二分搜索算法
- 分治算法---二分搜索算法
- C#二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 简单算法--二分搜索
- 二分搜索算法细节
- 研究二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- leetcode 50 值得再看一遍
- 实验室设备微信公众号预约系统
- 普通方法创建javabeans项目
- 51nod138夹克老爷的逢三抽一
- 1.命令行DOS窗口操作 MySQL
- 算法:改写二分搜索算法
- MJRefresh适配ios11以及iPhoneX
- tencent://message协议
- Python中值传递和引用传递区别
- angualr基础之组件通信
- C语言下的进栈、出栈操作
- 猜数字一个人玩多没意思,试试双人猜数字游戏吧
- Android 广播机制和过滤机制(BroadCast)_安卓基础
- 枚举