1、算法原理:缩小一半范围,快速锁定
举例子:查字典找“中”这个字。字典是按拼音排序的,你不会从第一页开始翻,而是先翻到中间,看中间那页的拼音是“L”还是“Q”,如果“中”的拼音“Z”比中间的大,就直接往后半本找,再把后半本分成两半,接着找中间,直到找到“Z”开头的部分。
这个算法的要求是,要找的东西必须是已经排好序的。比如从数字[1,3,5,7,9,11,13]里找9,第一步先找中间的数字7,9比7大,所以就不用看前半部分[1,3,5,7]了,只看后半部分[9,11,13];第二步再找这部分的中间数字11,9比11小,就只看[9];第三步直接找到9,总共就用了3步,要是从开头一个个找,得用5步。数据越多,二分查找省的时间就越多。 最常见的就是查字典、查通讯录,手机里搜联系人的时候,系统就是用类似二分查找的方法快速定位的。还有图书馆的图书检索系统,按编号找书,输入编号后,系统不用遍历所有书架,而是通过二分法快速确定图书所在的区域。
2、特点分析
优点太突出了,就是快。缺点也很明确,前提条件严格,必须是已经排好序的数据。。