二分查找(递归与非递归)
2014-10-30 22:04
344 查看
递归的二分查找:
非递归的二分查找:
int search(int *a, int target, int p, int r) { if (p <= r) { int mid; mid = (p + r) / 2; if (*(a + mid) == target) return 1; else if (*(a + mid) > target) return search(a, target, p, mid - 1); else return search(a, target, mid + 1, r); } return 0; }
非递归的二分查找:
int search(int *a, int target, int p, int r) { int mid; while (p <= r) { mid = (p + r) / 2; if (*(a + mid) == target) return 1; else if (*(a + mid) > target) r = mid - 1; else p = mid + 1; } return 0; }
相关文章推荐
- 20140717 二分查找 递归和非递归
- 二分查找 递归与非递归 编程之美写法
- 二分查找递归和非递归
- 二分查找(递归和非递归写法)
- 二分查找——递归和非递归
- 二分查找,递归和非递归
- 二分查找递归和非递归
- 二分查找的递归和非递归写法
- 二分查找(递归与非递归)
- 数据结构与算法分析(Java语言描述)(15)—— 二分查找(递归与非递归)
- 斐波那契数列和二分查找的算法(递归与非递归)
- 二分查找-递归和非递归
- 二分查找与斐波那契数递归与非递归的时间复杂度与空间复杂度
- C 二分查找 递归与非递归的实现代码
- 二分查找的递归和非递归
- 二分查找(递归与非递归)
- 二分查找的递归写法和非递归写法
- 二分查找的递归与非递归
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)