基本算法之二分查找法折半查找(Java)
前提条件:数组中的数据必须是有序的!
核心思想:每次排除一半的数据,查询数据的性能明显提高很多!
public class Task { public static void main(String[] args) { int[] arr = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}; int rst = binarySearch(arr, 31); System.out.println(rst); } // 二分查找算法 public static int binarySearch(int[] arr, int target) { //声名两个指针【int 值】分别记录数组的起始索引和结束索引 int left = 0; int right = arr.length-1; int index = 0; while (left <= right){ //计算本次mid索引【中间值索引】,判断本次mid对应的原始值是否满足目标元素 int mid = (left+right)/2; if (arr[mid] == target){ return mid; }else if (arr[mid] > target){ right = mid - 1; }else if (arr[mid] < target){ left = mid + 1; } } return -1; }
本文作者:好学的耀耀
本文链接:https://www.cnblogs.com/yaomagician/p/17165980.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~