二分搜索算法(Binary Search)是一种高效的搜索算法,用于在有序数组中查找特定元素的位置。它的基本思想是将数组分为两部分,通过比较目标值与数组中间元素的大小关系,确定目标值可能存在的区间,然后不断缩小区间直到找到目标值或确定不存在。二分搜索算法是一种分治法的应用,通过将问题分解为更小的子问题,逐步缩小搜索范围。
二分搜索算法用于在有序数组中查找特定元素的位置,即确定目标值在数组中的索引。
- 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;
- }
-
- public static void main(String[] args) {
- int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- int target = 6;
-
- int result = binarySearch(arr, target);
-
- if (result == -1) {
- System.out.println("目标元素不存在");
- } else {
- System.out.println("目标元素的索引为 " + result);
- }
- }
- }