回答

收藏

如何用java实现二分查找算法

知识点 知识点 385 人阅读 | 0 人回复 | 2023-12-04

可以使用以下代码实现二分查找算法:

8 l& E1 n6 a- E2 `. c. s
  1. public class BinarySearch { ' B8 P0 h) G2 a3 K
  2.     public static int binarySearch(int[] arr, int target) {
  3.         int left = 0;
  4.         int right = arr.length - 1;
  5.         
  6.         while (left <= right) {
  7.             int mid = left + (right - left) / 2; 2 e  a$ c: [. i$ @8 e
  8.              ( b! y8 W4 t" b' C
  9.             if (arr[mid] == target) {
  10.                 return mid; # S! K$ p( E* U9 l, P- m
  11.             } - ~. ~' T0 _, c% i  Y3 z" d
  12.              + G0 G2 s/ ?4 R. ?
  13.             if (arr[mid] < target) { 2 f+ ~; ~6 k3 G& y" R# ]
  14.                 left = mid + 1; # |+ h3 _' `. j
  15.             } else { 1 \6 N3 l! \! u- S
  16.                 right = mid - 1; 7 U' K3 S9 W3 G& N# o# e
  17.             } 2 |8 y( W+ r8 b$ b. X6 x) R- m
  18.         } ! H. Y+ C! {! }* S- W, ]! @5 f
  19.         
  20.         return -1; * t% \# I9 A: `! P. h7 q" y+ V
  21.     }
  22.    
  23.     public static void main(String[] args) { 2 G7 C: h4 U4 d& I4 D5 W
  24.         int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; - y7 Q. Z& d7 A. C
  25.         int target = 6;
  26.         
  27.         int result = binarySearch(arr, target); 5 k$ q* U& C, n: s1 N2 y1 X
  28.          - }( H  R% |% T. g
  29.         if (result == -1) {
  30.             System.out.println("Element not present in array");
  31.         } else { 8 }' K3 Q* q; U* }. `6 v8 O
  32.             System.out.println("Element found at index " + result); 8 E1 F( J# n2 s8 x2 x) m5 z$ c
  33.         }
  34.     }
  35. }
复制代码
这是一个简单的二分查找算法的实现,可以在给定的有序整数数组中查找目标元素的索引。3 U, w6 k/ C; L, ~
/ K1 E- i6 j9 G3 j' }
' M; f7 `6 T  D! u
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则