二分查找
来源:互联网 发布:sd卡数据修复 编辑:程序博客网 时间:2024/06/11 15:38
对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。
给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。
测试样例:
[1,3,5,7,9],5,3
返回:1
class BinarySearch {public: int getPos(vector<int> A, int n, int val) { // write code here int size=A.size(); if(size==0 || n<=0) return -1; int i=0,j=n-1; int mid=0; while(i<=j) { mid=(i+j)/2; if(A[mid]>val) j=mid-1; else if(A[mid]<val) i=mid+1; else { while(mid>=0 && A[mid]==val) mid--; return mid+1; } } return -1; }};
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 关于Gson-2.4(自己犯得错误)
- Unity3D占用内存太大的解决方法
- iOS程序猿如何快速掌握 PHP,化身"全栈攻城狮"?
- Ubuntu下mysql无法重启
- TEST 1#
- 二分查找
- C/C++常用宏定义
- Form表单中的action提交路径问题
- C++中struct和class的区别
- Gulp使用指南
- ftp与sftp连接实例
- How to Support 3D Touch - Static Action on Xcode6
- Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2
- Code Forces 581 C. Developing Skills(贪心)