二分查找
来源:互联网 发布:欧美最美女星知乎 编辑:程序博客网 时间:2024/06/08 09:17
#include<stdio.h>int BinaryFind(int *a,int n,int data) //非递归实现{ if(a==NULL||n<=0) return -1; int begin=0; int end=n-1; while(begin<=end) { int mid=begin+(end-begin)/2; if(a[mid]==data) return mid; else if(a[mid]<data) begin=mid+1; else end=mid-1; } return -1;}int BinaryRecursive(int*a,int begin,int end,int data) //递归实现二分查找{ if(a==NULL||begin>end) return -1; int mid=begin+(end-begin)/2; if(a[mid]==data) return mid; else if(a[mid]<data) return BinaryRecursive(a,mid+1,end,data); //注意return else return BinaryRecursive(a,begin,mid-1,data);}int main(){ int a[]={1,2,3,5,6,7}; int n=sizeof(a)/sizeof(a[0]); for(int i=0;i<n;i++) { printf("%d\n",a[i]); } printf("4 is in the line: %d\n",BinaryFind(a,n,4)); printf("5 is in the line:%d\n",BinaryRecursive(a,0,n-1,5)); return 0;}
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- oracle 初认识 2015/7/27
- javascript 网页跳转的方法
- spring中创建bean对象时多例和单例的区别
- html5缓存
- windows7下cygwin+vs2013编译webkit源码
- 二分查找
- git命令
- 提高iOS开发效率的方法和工具
- C/C++ 开源 JSON 程序库性能及标准符合程度评测
- tomcat部署之字符编码问题
- ViewGroup其本身就是View的扩展---理解
- PL/SQL 编写查询语句时LIKE中文不起作用
- Matlab 符号运算的因式分解、展开与合并、简化
- JS 错误处理与调试