ruby普通二分查找和递归二分查找
2017-12-16 14:42
330 查看
#普通二分查找 def binSearch(arr,value) left=0 right=arr.length-1 while left<=right center=(left+right)/2 if arr[center]== value return center elsif arr[center]<value left=center+1 else right=center-1 end end return -1 end #递归二分查找 def binSearchRecursive(arr,value) left=0 right=arr.length-1 _binSearchRecursive(arr,value,left,right) end #inner fun def _binSearchRecursive(arr,value,left,right) center=(left+right)/2 if right-left<0 return -1 elsif arr[center]==value return center elsif arr[center]>value return _binSearchRecursive(arr,value,left,center-1) else arr[center]<value return _binSearchRecursive(arr,value,center+1,right) end end arr=[1,2,3,4,5,6,7] puts binSearch(arr,5) puts binSearchRecursive(arr,5)
欢迎关注我的github https://github.com/luckyCatMiao
相关文章推荐
- 算法(第4版) 学习笔记二——二分查找的普通实现与递归实现
- ruby数组和哈希表的区别,递归,二分查找方法
- 二分查找(递归与非递归)
- 二分查找的递归与非递归实现
- 二分查找与斐波那契数递归与非递归的时间复杂度与空间复杂度
- 递归与非递归进行二分查找
- 递推递归练习 P 二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找递归和非递归
- java非递归二分查找
- 二分查找的递归和非递归实现
- 二分查找的递归与非递归算法
- 二分查找----递归实现
- 二分查找的递归与非递归
- C++之二分查找/折半查找(非递归和递归两种方式)
- 二分查找——递归与非递归
- 二分查找递归实现
- 二分查找的循环实现和递归实现
- leetcode 35. Search Insert Position-二分查找|递归|非递归
- Java 查找方法(普通查找,二分查找)