首页 > 编程知识 正文

java实现二分法查找,二分查找法过程详解

时间:2023-05-06 18:39:14 阅读:128864 作者:3161

二分搜索又称折半搜索(Binary Search ),是一种高效的搜索方法。 但是,在往返搜索中,路线表必须是顺序存储结构,表中的元素必须按关键字排序。

二分搜索的思路非常简单,从粗暴的扫描搜索中重新排列要素后,改为不断进行折半搜索,将搜索的时间复杂度从o(n )降低到o(n ) O(log2N )。

二叉搜索的思路与二叉搜索树的搜索过程完全相同,将排序后的数组视为平衡的二叉搜索树,数组中点是树的根节点。 根据折半后的中点是下一个子树的根节点来类推。 通过不断判断目标值和各根节点的值的大小,接着决定寻找根节点的左子树还是右子树。

在实现时,可以维护两个指针left和right。 指针之间的范围就是搜索范围。 搜索过程包括:

首先判断边界条件,判断left位置的值和right位置的值中是否包含目标值,如果包含,则结束检索;

从左和右位置找到当前范围的中点mid。 也就是说,mid的值为(左灯光)/2。

如果mid的值为target的值,则搜索结束。

如果left和right已经是相邻元素,证明数组没有目标值,结束搜索;

如果目标值大于mid,则在mid、right之间继续检索。 也就是说,将mid的值赋予left;

相反,在left和mid之间继续检索,也就是说,将mid的值赋予right;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。