可以使用以下代码实现二分查找算法:
8 l& E1 n6 a- E2 `. c. s
- public class BinarySearch {
' B8 P0 h) G2 a3 K
- 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;
2 e a$ c: [. i$ @8 e
-
( b! y8 W4 t" b' C
- if (arr[mid] == target) {
- return mid;
# S! K$ p( E* U9 l, P- m
- }
- ~. ~' T0 _, c% i Y3 z" d
-
+ G0 G2 s/ ?4 R. ?
- if (arr[mid] < target) {
2 f+ ~; ~6 k3 G& y" R# ]
- left = mid + 1;
# |+ h3 _' `. j
- } else {
1 \6 N3 l! \! u- S
- right = mid - 1;
7 U' K3 S9 W3 G& N# o# e
- }
2 |8 y( W+ r8 b$ b. X6 x) R- m
- }
! H. Y+ C! {! }* S- W, ]! @5 f
-
- return -1;
* t% \# I9 A: `! P. h7 q" y+ V
- }
-
- public static void main(String[] args) {
2 G7 C: h4 U4 d& I4 D5 W
- int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- y7 Q. Z& d7 A. C
- int target = 6;
-
- int result = binarySearch(arr, target);
5 k$ q* U& C, n: s1 N2 y1 X
-
- }( H R% |% T. g
- if (result == -1) {
- System.out.println("Element not present in array");
- } else {
8 }' K3 Q* q; U* }. `6 v8 O
- System.out.println("Element found at index " + result);
8 E1 F( J# n2 s8 x2 x) m5 z$ c
- }
- }
- }
复制代码
这是一个简单的二分查找算法的实现,可以在给定的有序整数数组中查找目标元素的索引。3 U, w6 k/ C; L, ~
/ K1 E- i6 j9 G3 j' }
' M; f7 `6 T D! u
|