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);
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP