重新回顾二分查找必要的细节0x01 算法想法二分查找(Binary search algorithm),是在数组章节第一次体会到算法精神的算法。其基本思想是:先确定待查元素的范围,之后以某种方式缩小范围,直到到达某种条件为支。很while其基本的算法思想是“减而治之”,和分而治之类似,但是更加的巧妙的是在于如何减小问题的规模或者排除问题。二分查找算法流程为:每次查找从数组的中间元素开始,如果中奖元素正好是要查找的元素,则搜索过程结束如果中间元素大于或者小于特定元素,那么选择对应的左边或者右边查找如果为空则说明找不到0x02 魔鬼细节想法并不困难,以最基本的方式从一个升序的数组中查找某一元素:12345678910111213# arr = [1,2,3,4,5,6,7,8]# target = 3left =0right =len(arr)-1whileleft<=right:mid = left+(right-left)//2ifarr[mid]>target:right = mid-1ifarr[mid]target:right = midifarr[mid]
...
继续阅读
(53)