我是靠谱客的博主 慈祥飞机,最近开发中收集的这篇文章主要介绍【排序算法go】二分查找1 递归实现 2 非递归实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 非递归实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部