二分查找
来源:互联网 发布:什么叫大数据金融 编辑:程序博客网 时间:2024/06/06 02:26
二分查找是一种效率非常高的查询算法,其简单思想是:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三部分
这里给出二分查找算法的Java实现:
int BinSearch(int Array[],int low,int high,int key){ if (low<=high) { int mid = (low+high)/2; if(key == Array[mid]) return mid; else if(key<Array[mid]) //移动low和high return BinSearch(Array,low,mid-1,key); else if(key>Array[mid]) return BinSearch(Array,mid+1,high,key); } else return -1;}
最近看到A到一道题,已知一个数组是递增或者递减,或者是递增递减交错,求该数组的峰值,算法要求时间复杂度在O(logn), 有思路的可以在评论区留言,大家一起讨论,谢谢!
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- linux下使用crontab定时备份mongodb数据
- CF
- 数值的整数次方
- LeetCode (Maximum Subarray)
- 二叉树的非递归遍历
- 二分查找
- JavaScrip---Json技术学习for--in语句
- Web开发之CSS
- oracle数据库引擎转换
- 浅谈React构建项目的思考过程
- Qt发布项目自动导入动态链接库生成exe
- Android 日志类型
- 驱动调试之printk的使用
- java的内存分配