Go语言实现二分查找

网友投稿 255 2022-11-06


Go语言实现二分查找

题目

利用go语言写一个二分查找的算法,查询0-9999个数中的某一个数,打印查找的次数

Go语言实现

主函数

import( "fmt")func main() { var array [10000]int for i := 0; i < 10000; i++ { array[i] = i } var result1,result2,result3,result4,result5 = Search(&array,15) fmt.Println(result1,result2,result3,result4,result5)}

二分查找

//调用二分查找返回结果func Search(data *[10000]int,value int) (int ,string,int,string,int) { height := len(data) - 1 var index,count = rankSearch2(data,value,height,0) return value ,"的查找次数:" ,count,"索引号:",index}//二分查找(递归)var count = 0func rankSearch(data *[10000]int, value int,height int,low int) (int,int) { count ++ key := (height+low) / 2 if value == data[height] { return height,count } if value == data[low] { return low,count } if value == data[key] { return key,count } if value > key { low = key return rankSearch(data ,value,height - 1,low + 1) } if value < key { height = key return rankSearch(data,value,height-1,low + 1) } return 0,0}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:护照查询API(护照查询个人信息查询)
下一篇:医保卡余额查询API(医保卡余额查询app)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~