超详细!Java二分法算法实现代码及原理剖析
以下是一个简单的Java二分法查找实现: ```java public class BinarySearch { public static int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) { return mid; } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1; // 如果目标元素不在数组中,返回-1 } public static void main(String[] args) { int[] arr = {2, 3, 4, 10, 40}; int target = 10; int result = binarySearch(arr, target); if (result != -1) { System.out.println("元素在数组中的索引为: " + result); } else { System.out.println("元素不在数组中"); } } } ``` 这个代码首先定义了一个左边界`left`和一个右边界`right`,然后在while循环中,计算中间元素的索引`mid`。如果中间元素等于目标元素,就返回`mid`。如果中间元素小于目标元素,就将左边界移动到`mid+1`。如果中间元素大于目标元素,就将右边界移动到`mid-1`。如果循环结束都没有找到目标元素,就返回-1表示目标元素不在数组中。 ######[AI写代码神器 | 342点数解答 | 2023-12-27 11:41:47]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)420
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)322
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1196
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- 探秘 Linux sensors 原理:从硬件读取到数据监测的全面剖析(GPT | 407点数解答 | 2024-10-21 16:06:25)269
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)256
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)333
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)332
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)487
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)372
- Python切片操作巧解经典算法:二维数组90°旋转(阿里通义 | 205点数解答 | 2023-10-31 11:05:29)344
- 揭秘iOS开发:常用算法大集合,提升应用性能与体验!(阿里通义 | 246点数解答 | 2023-11-08 00:43:08)298