牛克编程-二分查找
来源:互联网 发布:淘宝账号及密码免费送 编辑:程序博客网 时间:2024/04/30 14:14
题目描述
对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。
给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。
测试样例:
[1,3,5,7,9],5,3
返回:1
#include<iostream>#include<vector>#include<algorithm>using namespace std;class BinarySearch {public: int getPos(vector<int> A, int n, int val) { // write code here vector<int> tmp; int low = 0, high = n - 1, mid = 0; while (low <= high) { mid = (low + high) / 2; if (A[mid] == val) { tmp.push_back(mid); high = mid; high--; } else if (A[mid] > val) high = mid - 1; else if (A[mid] < val) low = mid + 1; } if (!tmp.empty()) { sort(tmp.begin(), tmp.end()); return tmp[0]; } else return -1; }};int main(void){ vector<int>a; int n, m; cin >> n >> m; int temp = m; while (n--) { int tmp; cin >> tmp; a.push_back(tmp); } BinarySearch *x = new BinarySearch; cout<<x->getPos(a, temp, m); system("pause"); return 0;}
阅读全文
0 0
- 牛克编程-二分查找
- 编程之美:二分查找
- python编程练习---二分查找
- c++二分查找—来自编程珠玑
- 《每日编程》----《算法》----《一》----二分查找
- 编程之美-二分查找练习题
- 编程之美3.11 二分查找常见问题
- 编程之美3.11 二分查找
- 二分查找递归实现--【编程珠玑】
- 二分查找非递归实现--【编程珠玑】
- 二分查找另类--【编程珠玑第四章】
- 二分查找中的编程小问题
- 编程之美--二分查找算法
- 编程之美之二分查找总结
- 编程算法之数组二分查找法
- 编程之美 3.11二分查找系列
- POJ 1.11编程基础之二分查找
- java编程面试——二分查找
- 使用反射对Servlet请求进行转发
- PostMan使用教程二 在test suite中运行test case
- 比特币深层技术原理浅析
- Java 变量类型
- 嵌入式学习9(Linux gcc gdb mkfile)
- 牛克编程-二分查找
- 高并发学习
- 谷歌为GridView添加HeaderView
- poj3083 DFS靠墙走+BFS
- Spring Boot 系列(五)web开发-Thymeleaf、FreeMarker模板引擎
- Android音频系统之音频基础
- 解决WIFI驱动RTL8188无法在rk3168平板Android4.2启动wifi的问题
- frm-40654 记录已经被另一个用户更新,重新查询以查看修改
- Postman使用小技巧