二分查找的递归和非递归实现
2017-08-18 10:17
197 查看
二分查找的递归和非递归实现
#include <iostream> using namespace std; //非递归 int BinarySearch(int arr[], int size, int k) { int left = 0, right = size - 1; int mid; while (left <= right) { mid = (left + right) / 2; if (arr[mid] == k) return mid; else if (arr[mid] > k) right = mid - 1; else left = mid + 1; } return -1; } //递归 int BinarySearchR(int arr[],int left,int right, int k) { if (left <= right) { int mid = (left + right) / 2; if (arr[mid] == k) return mid; else if (arr[mid] > k) return BinarySearchR(arr, left, mid - 1, k); else return BinarySearchR(arr, mid + 1, right, k); } else return -1; }
相关文章推荐
- 使用递归和非递归两种方法实现二分查找!!!
- 二分查找的递归和非递归实现
- 【算法拾遗】二分查找递归非递归实现
- 二分查找的递归和非递归实现
- 二分查找递归和非递归(java实现)
- 二分查找的递归与迭代实现
- 二分查找递归和非递归实现
- c# 递归 求阶乘 实现二分查找
- 二分查找递归实现,非递归实现
- 二分查找非递归与递归实现
- Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找的递归/非递归方式C++实现
- 二分查找的递归与非递归实现
- 二分查找的递归与非递归实现
- 二分查找递归非递归实现并分析
- 二分查找的递归与非递归实现
- C++ 二分查找的递归与非递归实现
- Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找的两种实现方式--循环和递归
- Java实现折半查找(二分查找)的递归和非递归算法