【一 Go 到底】第三十一天 --- 查找
一、顺序查找
使用循环查找,遍历数组
1.1 顺序查找(方法一)
有一个存放名字的数列 names=["Alibe","Bob","Credly","Danni","Ella","翠花"],用户从键盘输入一个名称,判断该名称是否存在于数组内
复制代码
1.2 顺序查找(方法二)
复制代码
二、二分查找(该数组必须是有序的)
需要是有序数组,并且从小到大排序
先找到中间下标 middle_index = (left_index + right_index)/2,让
要查找的值-findVal
与中间下标的值进行对比-midVal
midVal>findVal,就应该向 left_Index 到(middle_index-1)区间查找,也就是
左边到中间这块区间
midVal>findVal,就应该向 (middle_index+1)到 right_Index 区间查找,也就是
中间到右边这块区间
midVal==findVal,就刚好找打这个数
如果 left_Index>right_Index 就退出
2.1 二分查找案例一
对一个有序数组进行二分查找,[1, 8, 18, 108, 1008, 1888],输入一个数,查看该数是否存在于数组中,若存在,请输入该数在数组中的下标,若不存在,则提示"不存在"
复制代码
版权声明: 本文为 InfoQ 作者【指剑】的原创文章。
原文链接:【http://xie.infoq.cn/article/dad2be99776541481937623cd】。文章转载请联系作者。
评论