采用二分法查找数字是用的比较多的一种方法
其算法思想可以这样理解:
比如有一行数:1 6 9 10 15
要找到其中某一个数的位置,最简单的一种算法是穷举法,顾名思义,就是遍历这一行所有的数,比较,最后找到这个数,然后输出位置,如果到最后还是没有,就打印说没有找到该数
这里涉及到一个概念,就是算法时间复杂度(好像是这样称呼的)
穷举算法的复杂度是和n成一次函数的,所以复杂度是n,这样没有什么不好,但是该算法占用的时间比较长,所以效率比较低,程序的灵活性差
那么怎么办?--该问题即转化为如何避免过长的n呢?
可以用二分法的思想,注意:二分法只能用于序列有序的一列数
要查找的数每次和中间的这个数比较,如果是大于middle,则说明该数在后半段,如果小于,说明该数在前半