回答

收藏

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

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

可以使用以下代码实现二分查找算法:
4 i( @0 W. r! }9 }. X
  1. public class BinarySearch { 7 G6 ]9 h# L0 y0 F  V. v. E7 D- N
  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; # R. i4 G3 P2 A; S3 D( P9 R
  8.             
  9.             if (arr[mid] == target) { - V, F" L+ t1 t1 k7 B0 S9 {
  10.                 return mid; 2 a% r8 z5 V+ [$ [# t
  11.             } % c: y- y9 \; s# b7 f3 k& d
  12.             
  13.             if (arr[mid] < target) { " d' T8 @0 _$ R# @
  14.                 left = mid + 1; 9 H  b  e; E8 i; R+ `
  15.             } else {
  16.                 right = mid - 1; 3 H0 T; S0 q0 u1 e; b& ?: W
  17.             }
  18.         } , f- p+ }6 o: N& h5 o3 F9 G
  19.          . d  G  Y( |2 j. K9 y
  20.         return -1;
  21.     } " \/ ?, F( P6 D9 E
  22.    
  23.     public static void main(String[] args) { 7 X4 q; u, O/ O8 g
  24.         int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  25.         int target = 6;
  26.          ( e9 w# h' ^3 e$ e/ @
  27.         int result = binarySearch(arr, target);
  28.          ' L! l1 }4 O% A! [
  29.         if (result == -1) { 4 T4 x/ v$ b: B3 D5 G& K. L- I2 y
  30.             System.out.println("Element not present in array");
  31.         } else {
  32.             System.out.println("Element found at index " + result);
  33.         }
  34.     }
  35. } 2 i+ d) E- z' v$ V; R/ {, q
复制代码
这是一个简单的二分查找算法的实现,可以在给定的有序整数数组中查找目标元素的索引。# {9 w" ]% g& w5 ^4 O

! Y* \  K) l1 t3 Z
7 U4 \, E" h8 w; n9 F
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则