c语言利用递归实现二分查找
2014-08-19 09:53
519 查看
#include<stdio.h> int search(int *array,int start,int end,int num); int main() { int array[] = {1,2,5,7,9,10,11,14,17,18,20}; int size = sizeof(array)/sizeof(int); int *pointer = array; int result = search(array,0,size - 1,21); printf("%d\n",result); return 0 ; } // 利用递归进行二分查找 如果找到返回此数在数组的位置,否则返回-1 // *array数组指针 // start 数组开始的位置 // end 数组结束的位置 // num 要查找的数字 int search(int *array,int start,int end,int num) { if(start != 0 && start != end) { end++; } int size = end - start; int middle = (end + start) / 2; if(size == 0) { if(*(array+middle) == num) { return middle; }else { return -1; } } //如果中间的数大于要查找的数,则从中间的数左边开始查找 //如果中间的数小于要查找的数,则从中间的数右边开始查找 if(*(array+middle) > num) { return search(array,start,middle-1,num); }else if(*(array+middle) < num) { return search(array,middle + 1,end,num); }else { return middle; } return -1; }
相关文章推荐
- C语言 ---- 递归实现二分查找
- 使用c语言指针和递归方法实现二分查找
- C语言数据结构中二分查找递归非递归实现并分析
- C语言实现 二分查找数组中的Key值(递归和非递归)
- c语言简单递归/非递归实现二分查找
- 二分查找的递归和非递归算法(C语言实现)
- C语言:递归和非递归实现二分查找
- C语言实现数组二分查找与顺序查找
- java递归实现二分查找
- 二分查找的递归与迭代实现
- 漫谈递归:二分查找算法的递归实现
- C++数据结构--二分查找的递归和非递归实现
- 漫谈递归:二分查找算法的递归实现
- 【转】Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找的递归与非递归实现
- 二分查找 递归实现 和 循环实现
- 二分查找的递归和非递归实现
- C语言调用库函数实现二分查找
- 《算法导论》第二章----插入排序(伪代码实现、课后习题(递归版本、二分查找策略版本))
- C语言调用库函数实现二分查找