二分法查找
来源:互联网 发布:ubuntu超级用户权限 编辑:程序博客网 时间:2024/06/13 21:39
以下为最简单的二分法查找算法:
#include <stdio.h>#define NOTFOUND (-1)int BinarySearch(int * nArray, int nNum, int len);int main(){int nArray[] = {0, 1, 2, 3, 4, 5, 6, 8888};int nRet = 0;nRet = BinarySearch(nArray, 8888, sizeof(nArray));if(nRet != -1)printf("find the number : %d\n", nRet);elseprintf("not found!\n");return 0;}int BinarySearch(int * nArray, int nNum, int nLen){int nHigh, nMid , nLow = 0;nHigh = nLen - 1;while(nLow <= nHigh){nMid = (nHigh + nLow) / 2;if (nArray[nMid] > nNum)nHigh = nMid + 1;else if (nArray[nMid] < nNum)nLow = nMid + 1;elsereturn nArray[nMid];}return NOTFOUND;}
二分法查找应该注意的几个点:
1.不要把下标和相对应的数弄混;
2.在比较的时候要注意是数组中间的跟要查找的数字相比,然后修改low和high其中一个边界值;
3.没有找到时,使用-1表示并不合适,因为有可能要查找的值是-1;
4.二分法查找是基于一个已经排序的数组进行。
阅读全文
0 0
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 如何让链接为空 即点击时不进行跳转
- python 将txt文档导入excel中出现的unicode error问题
- java.lang.OutOfMemoryError: PermGen space
- HDPCD-Java-复习笔记(10)-lab
- 如何免费上传4G以上大文件至百度云盘
- 二分法查找
- python 手记6 〖笨方法学python习题21〗
- Tp5 Validate
- 搭建Springboot框架,并添加JPA和Gradle组件
- 面试_人事问题
- windows环境eclipse操作hadoop常见错误:Permission denied: user=haibozhang, access=WRITE, inode='...'
- c++演示表达式的运算过程
- git的基本工作流程(git add; git commit; git rm; git mv; .gitignore文件)
- C 基本语法