Java 程式在雙精度陣列上實現二分查詢
雙精度陣列上的二分查詢可以用下列方法實現
java.util.Arrays.binarySearch(). 如果陣列中包含所需的雙精度元素,此方法將返回該元素的索引,否則返回 (-(插入點) - 1),其中插入點是元素將插入陣列中的位置。
以下是一個演示此功能的程式示例 −
示例
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
double d_arr[] = { 5.2, 7.5, 9.7, 1.8, 4.0 };
Arrays.sort(d_arr);
System.out.print("The sorted array is: ");
for (double i : d_arr) {
System.out.print(i + " ");
}
System.out.println();
int index1 = Arrays.binarySearch(d_arr, 9.7);
System.out.println("The double value 9.7 is at index " + index1);
int index2 = Arrays.binarySearch(d_arr, 2.5);
System.out.println("The double value 2.5 is at index " + index2);
}
}輸出
The sorted array is: 1.8 4.0 5.2 7.5 9.7 The double value 9.7 is at index 4 The double value 2.5 is at index -2
接下來,讓我們理解一下上面的程式。
定義雙精度陣列 d_arr[],然後使用 Arrays.sort() 對其進行排序。然後使用 for 迴圈列印排序後的陣列。以下程式碼片段演示了此過程 −
double d_arr[] = { 5.2, 7.5, 9.7, 1.8, 4.0 };
Arrays.sort(d_arr);
System.out.print("The sorted array is: ");
for (double i : d_arr) {
System.out.print(i + " ");
}
System.out.println();使用 Arrays.binarySearch() 方法查詢元素 9.7 和 2.5 的索引。由於陣列中包含 9.7,因此會顯示其索引。此外,陣列中不包含 2.5,因此會顯示根據 (-(插入點) - 1) 確定的值。以下程式碼片段演示了此過程 −
int index1 = Arrays.binarySearch(d_arr, 9.7);
System.out.println("The double value 9.7 is at index " + index1);
int index2 = Arrays.binarySearch(d_arr, 2.5);
System.out.println("The double value 2.5 is at index " + index2);
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP