我是靠谱客的博主 大意红牛,最近开发中收集的这篇文章主要介绍Golang实现基本查找算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package main

import (
“bufio”
“fmt”
“os”
“strconv”
“strings”
)

func binarySearch(data []int, key int) int {
// 二分查找
left := 0
right := len(data) - 1
for {
if left > right { // 小于等于
break
}
mid := (right-left)/2 + left // 等价于 (a+b)/2,防止a+b过大
if data[mid] == key {
return mid + 1
} else if data[mid] < key {
left = mid + 1
} else {
right = mid - 1
}
}
return -1
}

func main() {
input := bufio.NewScanner(os.Stdin)
for input.Scan() {
str := strings.Split(input.Text(), " ")
input.Scan()
key, _ := strconv.Atoi(input.Text())
data := make([]int, 0)
for i := 0; i < len(str); i++ {
temp, _ := strconv.Atoi(str[i])
data = append(data, temp)
}
fmt.Println(binarySearch(data, key))
}
}

最后

以上就是大意红牛为你收集整理的Golang实现基本查找算法的全部内容,希望文章能够帮你解决Golang实现基本查找算法所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部