回答

收藏

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

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

可以使用以下代码实现二分查找算法:
; {% A1 ~5 B4 Y3 Z/ U( Y( N' d& V
  1. public class BinarySearch { 1 f* \; ]$ `: _/ `! A( `! j; R0 j! c
  2.     public static int binarySearch(int[] arr, int target) {
  3.         int left = 0; : b0 T" D5 z& z. {" M
  4.         int right = arr.length - 1;
  5.          # k9 J- L' Q/ I" x# p
  6.         while (left <= right) {
  7.             int mid = left + (right - left) / 2;
  8.             
  9.             if (arr[mid] == target) { ( k- e1 d  @% V" V
  10.                 return mid;
  11.             }
  12.              1 p% f  {- i) ]2 X
  13.             if (arr[mid] < target) { , t, i6 K+ Y% x. m
  14.                 left = mid + 1;
  15.             } else { & L9 D/ s7 G( K( P: W
  16.                 right = mid - 1; : }3 G6 E( `5 D- L
  17.             }
  18.         } 0 r2 c$ f* I, b/ m1 H( [( x  m
  19.          % s$ j1 q  o- W8 q( q0 L. E3 O$ n
  20.         return -1; $ H$ Q0 [' ?) b
  21.     }
  22.    
  23.     public static void main(String[] args) { , J3 N' F3 k3 e! |1 [
  24.         int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 8 ^4 }- {# \( d* J# d4 }
  25.         int target = 6;
  26.         
  27.         int result = binarySearch(arr, target); : h. J! _2 i. Q1 u
  28.          ' _$ I8 a* H9 {+ E& w( S& v- R
  29.         if (result == -1) { : O0 `. e1 o) I6 m& ~0 F" y1 z. @) p+ H
  30.             System.out.println("Element not present in array"); / z. L& h% V( V# X5 a$ [
  31.         } else { : |6 k: F% s; b3 B- y
  32.             System.out.println("Element found at index " + result); 3 n# v: b5 s9 [) I
  33.         }
  34.     }
  35. } 5 D9 d& D( o3 m6 V6 o0 q( C6 V
复制代码
这是一个简单的二分查找算法的实现,可以在给定的有序整数数组中查找目标元素的索引。
% k1 \8 I/ e/ x( p7 B7 f+ N5 j
. q5 d/ A9 D. [' T+ c% U8 g6 y
$ A+ a9 H8 z: w7 C
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则