回答

收藏

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

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

可以使用以下代码实现二分查找算法:
1 P* R) a: n3 N0 S; I
  1. public class BinarySearch { 1 Q6 `- ]& K  i1 e1 t) u
  2.     public static int binarySearch(int[] arr, int target) {
  3.         int left = 0;
  4.         int right = arr.length - 1; 9 y: f# ]) Y9 y  X0 \
  5.          : a! l- R3 j8 S% Q; o& |
  6.         while (left <= right) {
  7.             int mid = left + (right - left) / 2;
  8.              6 Y$ `; {  ]0 _, a" P& q- h/ w$ s
  9.             if (arr[mid] == target) { + U% Z0 a+ W8 b" [7 Y
  10.                 return mid;
  11.             }
  12.              6 Q( {. M: i" b2 T% v- I
  13.             if (arr[mid] < target) {
  14.                 left = mid + 1; : b4 E8 X2 O" O5 e0 ^
  15.             } else {
  16.                 right = mid - 1; / K# p: W1 P' n( o  }/ W6 ~2 {4 t
  17.             } ( t( L# G$ N3 m. C5 a1 Q; h1 f# z
  18.         } + i$ G* t$ \) p( L( P% H' Y
  19.          ' q" Y' f; x  y# P  j! }/ B' a
  20.         return -1;
  21.     }
  22.    
  23.     public static void main(String[] args) {
  24.         int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  25.         int target = 6; & O* I( X* b  A& j) J
  26.         
  27.         int result = binarySearch(arr, target); # f+ Z: V% l& i- D
  28.         
  29.         if (result == -1) { % K* u8 p1 w! M' e$ M) _
  30.             System.out.println("Element not present in array"); $ e6 [3 r. Z% I" n) L) P3 b2 I. c
  31.         } else {
  32.             System.out.println("Element found at index " + result);
  33.         }
  34.     } - a, v! \- S1 ?+ @1 ]* @  s, }
  35. }
复制代码
这是一个简单的二分查找算法的实现,可以在给定的有序整数数组中查找目标元素的索引。
4 }2 K. s2 L( |- V( I) U$ L
9 q- M; Y4 c& H8 ?
# z5 ?  ?3 p$ u& f9 z+ y2 P
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则