折半查找的迭代与递归实现
2013-12-25 18:01
239 查看
//以此纪念2013年12月18日在百度面试失败,其中写出了二分法的迭代查找却没写出递归查找 #include <stdio.h> #define LEN 10 int bin_search(int array[], int low, int high, int key);//迭代 int bin_search2(int array[], int low, int high, int key);//递归 int main(){ int arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int key1 = 9,key2 = 3; printf("key1的位置是 %d\n", bin_search(arr, 0, LEN-1, key1)); printf("key2的位置是 %d\n", bin_search2(arr, 0, LEN-1, key2)); return 0; } int bin_search(int array[], int low, int high, int key) { int m; while(low<high){ m = (low + high)/2; if(array[m]==key){ return m; }elseif(array[m]>key){ low = m-1; }else{ high = m+1; } } return -1; } int bin_search2(int array[], int low, int high, int key) { int m = (low+high)/2; if(low>high){ return -1; } if(array[m]==key){ return m; }elseif(array[m]>key){ return bin_search2(array, low, m-1, key); }else{ return bin_search2(array, m+1, high, key); } }
相关文章推荐
- 折半查找的c++模板递归和迭代实现
- 二分搜索算法(折半查找)原理以及递归(recuition),迭代(iteration)的两种实现源代码
- 二分搜索算法(折半查找)原理以及递归(recuition),迭代(iteration)的两种实现源代码
- 利用递归实现折半查找
- 折半查找的递归和非递归实现(C++)
- 二叉树之中序遍历的递归和迭代实现
- 二分查找的递归实现和迭代实现
- 排序算法之归并排序的递归与迭代实现方法
- Java实现折半查找(二分查找)的递归和非递归算法
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 迭代与递归(及异同点的简单分析)以及Fibonacci数列的两种实现
- 归并排序的递归以及迭代两种实现和优化
- 递归、迭代与动态规划实现菲波那切数列
- 二分查找的递归实现和迭代实现
- 折半查找(非递归与递归实现)
- 树的遍历实现,前序遍历,中序遍历,后序遍历以及层次遍历的迭代与递归实现
- 用PHP实现二分法查找之递归和迭代
- 折半查找递归实现
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 斐波那契数列实现--递归,迭代,数组,队列