我是靠谱客的博主 光亮发夹,最近开发中收集的这篇文章主要介绍二分查找的代码实现--go语言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

二分查找的函数:
1.arr是一个有序数组,并且从小到大排序
2.先找到中间的下标midde=(leftindex+rigthindex)/2,然后让中间下标的值和findVal进行比较

2.1如果arr[middle]>findVal,就应该向 leftindex---(middle-1)
2.2 如果arr[middle]<findVal,就应该向 (middle+1)---rigthindex
2.3如果arr[middle]=findVal,就找到

3.退出递归的条件
if leftindex>rigthindex
 


package sunafa

import "fmt"

//二分查找的实现

//二分查找的函数:
//1.arr是一个有序数组,并且从小到大排序
//2.先找到中间的下标midde=(leftindex+rigthindex)/2,然后让中间下标的值和findVal进行比较
//
//2.1如果arr[middle]>findVal,就应该向 leftindex---(middle-1)
//2.2 如果arr[middle]<findVal,就应该向 (middle+1)---rigthindex
//2.3如果arr[middle]=findVal,就找到
//
//3.退出递归的条件
//if leftindex>rigthindex


func BinaryFind(arr *[6]int,leftindex int,rigthindex int,findVal int){
	//判断leftindex是否大于rigthindex
	if leftindex>rigthindex{
		fmt.Println("找不到...")
		return

	}

	//先找到中间的下标
	middle:=(leftindex+rigthindex)/2

	if((*arr)[middle]>findVal){
		//说明我们要查找的数,应该在leftindex---(middle-1)
		BinaryFind(arr,leftindex,middle-1,findVal)

	}else if((*arr)[middle]<findVal){
		//说明我们要查找的数,应该在(middle+1)---rigthindex
		BinaryFind(arr,middle+1,rigthindex,findVal)

	}else {
		//找到了
		fmt.Printf("找到了,下标为%vn",middle)
	}

}

//调用二分查找的函数
func CallBinaryFind(){

	var findnum int
	for {



		arr:=[6]int{11,19,21,99,119,999}

		fmt.Printf("请输入你要查询的数字:%d,提示:-1-->退出循环n",findnum)
		fmt.Printf("目前数组里面的内容是%vn:",arr)
		fmt.Scanln(&findnum)

		if findnum==-1{
			break   //-1退出程序
		}



		BinaryFind(&arr,0,len(arr)-1,findnum)

	}
}

 

func main() {
        
    //二分查找的实现

sunafa.CallBinaryFind()

}

最后

以上就是光亮发夹为你收集整理的二分查找的代码实现--go语言的全部内容,希望文章能够帮你解决二分查找的代码实现--go语言所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部