C语言:递归和非递归实现二分查找
来源:互联网 发布:ucloud云计算校园招聘 编辑:程序博客网 时间:2024/05/16 09:37
二分查找是将有序数列不断地缩小,直到找到改元素或折半区域的首元素位置高于尾元素位置为止。
//递归写二分查找int BinarySearchD(int arr[], int x, int begin, int end){if (begin <= end){int mid = begin + ((end - begin) >> 1);if (arr[mid] == x){return mid;}else if (arr[mid] < x){return BinarySearchD(arr, x, mid + 1, end);}else if (arr[mid] > x){return BinarySearchD(arr, x, begin, mid - 1);}else{return -1;}}}
//非递归二分查找int BinarySearch(int arr[], int x,int begin,int end){while (begin <= end){int mid = begin + ((end - begin) >> 1);if (arr[mid] == x){return mid;}else if (arr[mid] < x){begin = mid + 1;}else if (arr[mid]>x){end = mid - 1;}else{return mid + 1; }}return 1;}
int main(){int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };int len = sizeof(array) / sizeof(array[0]);int begin = 0;int end = len;printf("%d ", BinarySearch(array, 8, begin, end));printf("%d ", BinarySearchD(array, 8, begin, end));system("pause");return 0;}
0 0
- C语言:递归和非递归实现二分查找
- c语言简单递归/非递归实现二分查找
- 二分查找递归和非递归实现(c语言实现)
- 二分查找算法递归和非递归实现(C++)
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 递归和非递归实现二分查找
- 二分递归查找和非递归查找
- 二分查找(非递归实现和递归实现)
- 使用c语言指针和递归方法实现二分查找
- c语言利用递归实现二分查找
- C语言 ---- 递归实现二分查找
- 二分查找(C++)+递归和非递归算法
- 【C++】二分查找的递归形式和非递归形式
- 一个递归和非递归实现二分查找的代码
- C++数据结构--二分查找的递归和非递归实现
- C++虚基类的作用
- "DDL","DML","DCL","DQL"是什么?
- html5初学
- Struts2中的Action
- 34-3-2
- C语言:递归和非递归实现二分查找
- 电脑黑屏,只显示鼠标箭头,其他什么都没有
- SSH网站开发实录(8)Ueditor的入门使用
- 面试感悟
- Firefox ios 火狐浏览器iOS版本二次开发(一)
- 40个Java多线程问题总结
- jeesite前端页面与后台业务逻辑数据交互
- php面向对象之一
- bzoj 2342: [Shoi2011]双倍回文(manacher)