二分查找之应用篇
来源:互联网 发布:淘宝店铺海报图片 编辑:程序博客网 时间:2024/06/05 09:15
二分查找,又称折半查找。假设数组长度为N,则算法复杂度为O(log(n));
其优点是:比较次数少,查找速度快,平均性能好。
其缺点是:要求待查表为有序表,而且插入删除困难。
算法要求:必须采用顺序存储结构且关键字大小有序(升序、降序都可)。
算法原理:查找所要查找的元素时,首先与序列中间的元素进行比较,如果大于这个元素,就在当前序列的后半部分继续查找,如果小于这个元素,就在当前序列的前半部分继续查找,直到找到相同的元素,或者所查找的序列范围为空为止.
int search4(int array[], int n, int v){ int left, right, middle; left = -1, right = n; while (left + 1 != right) { middle = left + (right - left) / 2; if (array[middle] < v) { left = middle; } else { right = middle; } } if (right >= n || array[right] != v) { right = -1; } return right;}
一下是百度面试的一道题,其中可以应用到二分查找的思想。
题目:有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
算法实现的基本思路:找到负数和正数的分界点,如果正好是0就是它了,如果是正数,再和左面相邻的负数绝对值比较,如果是负数,取取绝对值与右面正数比较。还要考虑数组只有正数或负数的情况。
- 二分查找之应用篇
- 二分查找之详细篇
- 查找之二分查找
- 查找之二分查找
- 查找之二分查找
- 二分查找的应用
- 二分查找及其应用
- 二分查找+基础应用
- 二分查找的应用
- 查找算法之二分查找
- 查找算法之二分查找
- 查找之二 , 二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- python sqlalchemy 查询结果转化为 Json格式
- [Android] 代码混淆
- ArcPad 10 使用与同步 ArcGIS Server 的数据全攻略(一)
- 正则表达式30分钟入门教程
- PHP运行出现Notice : Use of undefined constant 的解决办法
- 二分查找之应用篇
- HTTP状态码
- 190亿像素的全世界最长全景照片
- 单引号内部的变量不会执行双引号会执行
- 发现CRM2011数据库维护的探讨
- ios 自动产生代码文档
- 四大“商”的区分
- Welcome Back to C++ (Modern C++)
- PHP的cURL使用