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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复