回答

收藏

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

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

可以使用以下代码实现二分查找算法:
8 }. e: ]$ \' n
  1. public class BinarySearch { % }% |  Z" G9 k7 `3 G
  2.     public static int binarySearch(int[] arr, int target) {
  3.         int left = 0;
  4.         int right = arr.length - 1;
  5.         
  6.         while (left <= right) { 3 f8 q$ d9 U5 d" B+ ~
  7.             int mid = left + (right - left) / 2;
  8.             
  9.             if (arr[mid] == target) { % D5 _, W1 _# E! A3 L: ^
  10.                 return mid; + v$ o+ ]( C1 I* i& @" e" ^
  11.             } ' k/ i* k& h) b9 V% Q
  12.              1 L$ a( U' L  w$ J- s0 I9 [
  13.             if (arr[mid] < target) { % }8 q+ A, {8 L1 b' X4 k
  14.                 left = mid + 1; ' `  b& I3 p& N3 F
  15.             } else { : w/ `4 m9 e, r; ?' D# l% j/ o$ W
  16.                 right = mid - 1; - ^0 E0 W8 K4 i, l1 `6 i
  17.             } " Z# |7 e8 u2 ?$ ~7 Q
  18.         } # f6 f0 l- \7 i3 P+ o4 N
  19.         
  20.         return -1; ' I- {0 D6 O+ y
  21.     }
  22.    
  23.     public static void main(String[] args) { $ w. l: U+ I- x- w0 c. m
  24.         int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  25.         int target = 6;
  26.          ) ^+ l; k5 X7 J  {8 F6 k! {* P: E7 L
  27.         int result = binarySearch(arr, target); 5 z0 B" S6 @& N0 d
  28.          3 ]! l& n: a7 h- d. I
  29.         if (result == -1) {
  30.             System.out.println("Element not present in array"); - G+ N% Y4 F5 S  C5 z0 A9 W
  31.         } else {
  32.             System.out.println("Element found at index " + result);
  33.         }
  34.     } $ P7 S2 i4 i& i  A* y
  35. } ! `: L: [' M8 Y. G: Q7 h0 @7 r
复制代码
这是一个简单的二分查找算法的实现,可以在给定的有序整数数组中查找目标元素的索引。
' s& f1 v5 U+ B: x; l
1 g) h! B6 S) \8 v8 b" B" }: R% K2 M6 M1 J' U* ~
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则