查找算法 二分查找
来源:互联网 发布:软件项目管理个人版 编辑:程序博客网 时间:2024/04/29 08:16
一般情况下, 面试时常会问一种排序算法,
通常一般人会写出冒泡排序法, 稍高要求一点是写出二分查找
int compare(int x, int y) {
return (x > y ? 1 : (x == y ? 0 : -1));
}
int binary_search(int list[], int nFind, int nLeft, int nRight) {
int nMiddle = 0;
if (nLeft <= nRight) {
nMiddle = (nLeft + nRight)/2;
switch (compare(list[nMiddle], nFind)) {
case 0:
{ return nMiddle;}
break;
case -1:
{return binary_search(list, nFind, nMiddle+1, nRight);}
break;
case 1:
{return binary_search(list, nFind, nLeft, nMiddle-1);}
break;
}
}
return -1;
}
// 注:其中的nMiddle = (nLeft + nRight)/2; 其实是可能会有溢出风险的,如果nLeft+nRight超过了该类型的最大值,就会发生溢出问题。
// 所以应该改成nMiddle = nLeft + (nRight - nLeft)/2
0 0
- 查找算法 二分查找
- 查找算法:二分查找
- 算法--查找--二分查找
- 查找算法---二分查找
- 查找算法:二分查找算法
- [转载]查找算法----二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法_二分查找
- 算法 二分查找(折半查找)
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- [算法]二分查找算法
- 【索引】Codeforces Round #263 (Div. 2)
- “非暴力沟通”给初创团队添点正能量
- 使用多线程求一列数字的和
- Discuz! -tools工具 (x2.5 x3.0 x3.1 x3.2通用) 充值admin 管理员 密码
- android 压缩图片大小,防止OOM
- 查找算法 二分查找
- Eclipse, Tomcat, Maven, Spring, Hibernate,J2EE
- 【索引】Codeforces Round #264 (Div. 2)
- C语言学习--标准输入输出与文件操作
- linux基础:解压&打包文件的方法
- Android开源的App(整理)
- view在oncreate中获取高和宽
- rabbitmq 实现原理
- 搭建Android开发环境之旅(Android4.0.3)