二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。
但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
归并排序即运用了二分法的思想。首先需要一个由小到大排序好的数组,先对比中间的值,如果比要找的大,则向前找,取中间值前面的一半再找中间值再对比。
如果比要找的小,则向后找,取中间值后面的一半再取中间值再对比。
递归实现这里,我使用了递归的方法进行实现。
首先需要确认查找的范围,即有一个左索引和右索引,每次取(left+right)/2为中间值,比较要查找的元素和中间值的大小,若中间值大,则向前找,即递归范围为left ,mid-1。反之向右找,即递归范围mid+1,right。若相等即为找到。
但是需要继续向此索引的前后找找看有没有和其相等的值,一并加入到集合中,最后返回这个集合。
递归实现代码 循环实现代码(非递归) 二分法查找(递归、循环)以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。