学习日记-02-关于 二分查找
2018-10-28 本文已影响0人
Adora_cdac
对象:有序的元素列表(list)
目标:一个元素(target)
时间复杂度:O(logN) log以2为底
思路:设置一个循环,在每一次循环中都比较target和guess值的大小,其中guess值是整个有序数列的中值(mid index),若guess值小了就将元素列表缩小到后半段(mid+1,len(list)-1),若guess值大了就将列表缩小到前半段(0,mid-1),若guess等于target则返回index的值
循环结构有 for循环和while循环。
一般while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。而for循环可以遍历任何序列的项目。在这个二分查找的小任务里,比较guess值和缩小范围在每一次循环中都是相同的,因此while循环更适合这里。
while循环的逻辑:当判断条件为true,执行语句,直到条件不满足,跳出。
二分查找直到范围缩小到只剩一个值的时候,停止。此时index_low = index_high
代码如下: