二分查找
来源:互联网 发布:win10优化设置教程 编辑:程序博客网 时间:2024/06/05 11:45
【二分查找】
针对有序数组,性能非常好。
【时间复杂度】
logn
【代码】
#include <stdio.h>#include <stdlib.h>//非递归实现二分查找int BinarySearch1(int a[], int n, int key){int left, right;int mid;left = 0;right = n - 1;while(left <= right){mid = (left + right) / 2;if(key == a[mid])return mid;else if(key > a[mid])left = mid + 1;elseright = mid - 1;}return -1;}//递归实现二分查找int BinarySearch2(int a[], int left, int right, int key){if(left > right)return -1;else{int mid = (left + right) / 2;if(key == a[mid])return mid;else if(key < a[mid])BinarySearch2(a, left, mid - 1, key);elseBinarySearch2(a, mid + 1, right, key);}}int main(void){int a[13] = {3, 14, 27, 31, 39, 42, 55, 70, 74, 81, 85, 93, 98};int key = 81;int index1, index2;index1 = BinarySearch1(a, 13, key);index2 = BinarySearch2(a, 0, 13, key);printf("%d %d\n", index1, index2);return 0;}
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 从零开始编写网游服务器-第一篇:服务器设计
- 基于Eigenfaces+SVM人脸识别实验
- cocos2d-x3.0 常用画图方法
- 稀疏矩阵的三元组顺序表的C语言实现
- Coder-Strike 2014 - Round 1__E-mail Addresses
- 二分查找
- 编码神器 Sublime Text 包管理工具及扩展大全
- usb设备的描述符和命令--读后解
- Unity3d 网络编程(三)(Unity3d内建网络简单服务器的建立)
- wifidog 源码初分析(4)
- 菜鸟玩云计算之十七:RHEL克隆虚拟机后改变网卡地址
- SP2010开发和VS2010专家"食谱"--第二章节--工作流(1)--创建带有初始表单的网站工作流
- 更多 Sublime Text 2 替换图标
- 隐蔽的百度音乐API