我是靠谱客的博主 呆萌朋友,最近开发中收集的这篇文章主要介绍Go语言 算法图解——二分查找,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

二分法查找---原理

如何从数组里找一个元素的位置?如果排列是无序的,我们只能从头到尾找,但如果排列是有序的,我们则可以用别的更好的方法,二分查找法就类似我们在英汉词典里找一个单词的方法。如下图所示(假如我们要查找的数字是“88”):

二分法查找---代码演示

package main

import "fmt"

func binary_search(arr [10]int, a int) (index int) {
	low := 0
	high := len(arr) - 1
	for {
		//中间值
		mid := (high + low) / 2 //注意是 +
		if arr[mid] > a {
			high = mid - 1
		} else if arr[mid] < a {
			low = mid + 1

		} else {
			index = mid
			return
		}
		//如果还没有找到 返回-1
		if high <= low {
			index = -1
			return
		}
	}
}
func main() {
	arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
	m := binary_search(arr, 19)
	fmt.Println(m)
}

了解更多Go语言知识https://study.163.com/course/introduction/1210620804.htm

最后

以上就是呆萌朋友为你收集整理的Go语言 算法图解——二分查找的全部内容,希望文章能够帮你解决Go语言 算法图解——二分查找所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部