摘要:
二分搜索思想给定一个有序(不降序)数组a, 求任意一个i使得a[i]等于v,不存在返回-1。二分搜索的思路是:选一个数组中间值m,将有序数组一分为二。如果a[m]==v,搜索结束;如果a[m]>v,搜索[left, m),反之搜索(m, right]。如图所示。那么如果数组中没有v时,何时终止搜索呢?一个显而易见的条件是数组不能再进行划分搜索时,即left > right 。二分搜索可以有以下变种:1. 给定一个有序(不降序)数组a, 求最大的i使得a[i]等于v,不存在返回-12. 给定一个有序(不降序)数组a, 求最小的i使得a[i]等于v,不存在返回-13.给定一个有序(不降 阅读全文