数据结构 -- 查找之 二分法查找
来源:互联网 发布:切片软件 编辑:程序博客网 时间:2024/05/16 05:06
有序数组的二分法查找:
1.递归 二分法查找;
2,非递归 二分法查找;
以下代码 在vs2010 测试通过:
#include "stdafx.h"#include "stdio.h"#include "stdlib.h"//非递归法 二分法查找int unrecursive_binary_search(int *arr,int arrLength,int value){int low,high,mid;low = 0;high = arrLength-1;mid = (low+high)/2;while(low <= high){if(arr[mid] > value){high = mid-1;mid = (low+high)/2;}else if(arr[mid] < value){low = mid+1;mid = (low+high)/2;}else{return mid;}}if(low > high){return -1;}}//递归法 二分查找int recursive_binary_search(int *arr,int low,int high,int value){int mid;mid = (low+high)/2;if(low <= high){if(arr[mid] > value){recursive_binary_search(arr,low,mid-1,value);}else if(arr[mid] < value){recursive_binary_search(arr,mid+1,high,value);}else{return mid;}}else{return -1;}}int _tmain(int argc, _TCHAR* argv[]){int arr[] = {0,1,16,24,35,47,59,62,73,88,99};int result1,result2 ;int length;length = sizeof(arr)/sizeof(int);//二分法 的递归查找result1 = recursive_binary_search(arr,0,length-1,62);if(result1 != -1){printf("递归法 查找成功!\n");}else{printf("该值不存在!\n");}//二分法的非递归查找result2 = unrecursive_binary_search(arr,length,62);if(result2 != -1){printf("非递归法 查找成功!\n");}else{printf("该值不存在!\n");}system("pause");return 0;}
0 0
- 数据结构 -- 查找之 二分法查找
- 数据结构 之二分法查找
- 查找之二分法查找
- [数据结构]二分法查找
- 图解数据结构二分法查找
- 查找算法之二分法查找
- 算法之二分法查找
- 查找之折半二分法
- 数据结构基础_二分法查找
- 数据结构顺序查找与二分法
- 数据结构——二分法查找
- 数据结构——二分法查找
- 数据结构之二分法查找、快速排序思想与实现
- 数据结构之二分法查找、快速排序思想与实现
- 查找算法之二分法查找(JAVA)
- Java查找算法之二分法查找
- 面试常见之二分法查找
- 基本算法之二分法查找
- CEdit重绘垂直居中显示
- C语言经典算法100例-016-求最大公约数和最小公倍数
- Linux 第一课 学习的方向
- synchronized详解
- 计算几何三维模板
- 数据结构 -- 查找之 二分法查找
- 如何在ElementaryOS(Ubuntu 12.10)上搞定娇羞的Lumia920(Win8 phone)
- 树百业2014第十届广州国际汽车改装服务业展览会
- 《高效学习OpenGL》 之 裁剪测试 alpha测试 glScissor(),glAlphaFunc()
- Python笔记——基本数据结构:列表、元组及字典
- java的System.getProperty()方法可以获取的值
- linux下的http服务器
- J2EE领域的一些技术框架结构图
- 语音编解码芯片AMBE2000中文手册