大家好!我是小琦,大家在用C语言对有序数列写查找,写递归算法的时候会不会太过于冗余,很捞;今天给大家带来一个简单、好用的算法——二分查找算法(折半查找算法)。
思路:
一.需要一个容器,来容纳数列
二.需要一个放输入查找数的变量,和left左下标,right右下标
三.算法1.找到中间元素(左下标+右下标)/2
2.判断是否是k(需要查找的元素)
情况1: 中间元素<k,则继续查找
情况2: 中间元素>k,则继续查找
情况3: 中间元素=k,则找到了
来我们看图:
注:
1.这只是一次循环,我们需要让程序一直循环找中间元素+判断是否找到
2.用(左下标+右下标)/2,元素有可能不准确,容易超限,我们用left+(right-left)/2
3.还需考虑容器中没有该数的情况
如图: