Java 程式在 long 陣列上實現二分查詢


可以透過使用 java.util.Arrays.binarySearch() 方法在 long 陣列上實現二分查詢。此方法返回所需的 long 元素的索引(如果它在陣列中可用),否則返回 (-(插放點) - 1),其中插放點是要將元素插放到陣列中的位置。

演示此操作的程式如下所示 −

示例

 線上演示

import java.util.Arrays;
public class Demo {
   public static void main(String[] args) {
      long long_arr[] = { 250L, 500L, 175L, 90L, 415L };
      Arrays.sort(long_arr);
      System.out.print("The sorted array is: ");
      for (long i : long_arr) {
         System.out.print(i + " ");
      }
      System.out.println();
      int index1 = Arrays.binarySearch(long_arr, 415L);
      System.out.println("The long value 415 is at index " + index1);
      int index2 = Arrays.binarySearch(long_arr, 50L);
      System.out.println("The long value 50 is at index " + index2);
   }
}

輸出

The sorted array is: 90 175 250 415 500
The long value 415 is at index 3
The long value 50 is at index -1

現在讓我們來理解一下上面的程式。

定義 long 陣列 long_arr[],然後使用 Arrays.sort() 對其排序。然後使用 for 迴圈列印已排序的陣列。演示此操作的程式碼片段如下 −

long long_arr[] = { 250L, 500L, 175L, 90L, 415L };
Arrays.sort(long_arr);
System.out.print("The sorted array is: ");
for (long i : long_arr) {
   System.out.print(i + " ");
}
System.out.println();

使用 Arrays.binarySearch() 方法查詢元素 415 和 50 的索引。因為 415 在陣列中,所以會顯示其索引。此外,50 不在陣列中,因此會顯示 (-(插放點) - 1) 的值。演示此操作的程式碼片段如下 −

int index1 = Arrays.binarySearch(long_arr, 415L);
System.out.println("The long value 415 is at index " + index1);
int index2 = Arrays.binarySearch(long_arr, 50L);
System.out.println("The long value 50 is at index " + index2);

更新於: 2020 年 6 月 25 日

201 次觀看

開啟你的 職業

完成課程並獲得認證

入門
廣告
© . All rights reserved.