概述
1 递归实现
二分查找递归实现,关键是要确定终止条件
package search
//递归实现
func BinarySearch(arr []int,dst int) int{
mid := len(arr)/2
//递归最重要的是确定终止条件
if len(arr) == 0{
return -1
}
//查找成功
if arr[mid]== dst{
return mid
}else if dst < arr[mid]{
arr = arr[:mid - 1]
}else {
arr = arr[mid+1:]
}
//继续递归
return BinarySearch(arr,dst)
}
2 非递归实现
//非递归实现
func BinarySearchEx(arr []int,dst int) int{
for len(arr)!=0{
mid := len(arr)/2
if dst == arr[mid]{
return mid
}else if dst < arr[mid]{
arr = arr[:mid-1]
}else{
arr = arr[mid+1:]
}
}
return -1
}
可以看到代码比用C/C++写简洁很多
最后
以上就是慈祥飞机为你收集整理的【排序算法go】二分查找1 递归实现 2 非递归实现的全部内容,希望文章能够帮你解决【排序算法go】二分查找1 递归实现 2 非递归实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复