二分查找递归实现

来源:互联网 发布:淘宝直播间怎么进入 编辑:程序博客网 时间:2024/05/17 00:18

本文由 @lonelyrains 出品,转载请注明出处。 
文章链接: http://blog.csdn.net/lonelyrains/article/details/45217067


// 表里没有相等元素,正确二分查找写法#include <stdio.h>int binSearch(int a[],int n,int key){// 第一次调用时参数检查if(n <= 0)return -1;// 递归调用的参数检查if(n == 1 && a[0] != key)return -1;if(a[n/2]<key){int index = binSearch(a+n/2,n-n/2,key);return index == -1 ? -1 : n/2+index;}else if(a[n/2]>key){return binSearch(a,n/2,key);}else return n/2;}void main(){int a[100000];for(int i=0;i<sizeof(a)/sizeof(int);i++)a[i] = i;int index = binSearch(a,sizeof(a)/sizeof(int),sizeof(a)/sizeof(int)-1);printf("index %d",index);}


参考链接:

http://blog.csdn.net/drzhouweiming/article/details/1562717

0 0
原创粉丝点击