什么是二分查找:
在⼀个升序的数组中查找指定的数字n,很容易想到的⽅法就是遍历数组,但是这种⽅法效率⽐较低。 ⽐如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让 你猜,你会怎么猜?你会1,2,3,4...这样猜吗?显然很慢;⼀般你都会猜中间数字,⽐如:150,然 后看⼤了还是⼩了,这就是⼆分查找,也叫折半查找。
代码解析:
先建立一个字符串,然后设置一个输入的数字。再求整个字符串有多少字符。
设置左边下标为0,右边下标sz-1
建立一个循环当left<=right 时可以查找
mid设置为left和right的平均值
当mid<k(自己输入的数)时使left=mid+1
反之则right=mid-1;
找到了则显示 “找到了,下标是:”
如果不符合以上条件则显示找不到。
但int类型的数值会有上限所有可以修改一下
将 int mid =(left + right)/2 改为
int mid = left + (right - left) / 2;