Java 程式實現對陣列的二分搜尋
可以使用 java.util.Arrays.binarySearch() 方法在陣列上實現二分搜尋。如果陣列中存在所需元素,此方法會返回該元素的索引,否則會返回 (- (插入點) - 1),其中插入點是元素將被插入到陣列中的位置。
演示此方法的程式如下 −
示例
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int arr[] = { 3, 9, 1, 6, 4};
Arrays.sort(arr);
System.out.print("The sorted array is: ");
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
int index1 = Arrays.binarySearch(arr, 6);
System.out.println("The integer 6 is at index " + index1);
int index2 = Arrays.binarySearch(arr, 7);
System.out.println("The integer 7 is at index " + index2);
}
}輸出
The sorted array is: 1 3 4 6 9 The integer 6 is at index 3 The integer 7 is at index -5
現在,讓我們瞭解一下上述程式。
已定義 int 陣列 arr[],然後使用 Arrays.sort() 對其進行排序。然後使用 for 迴圈列印排序後的陣列。演示此功能的程式碼片段如下 −
int arr[] = { 3, 9, 1, 6, 4};
Arrays.sort(arr);
System.out.print("The sorted array is: ");
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();方法 Arrays.binarySearch() 用於查詢元素 6 和 7 的索引。由於 6 在陣列中,因此會顯示其索引。另外,7 不在陣列中,因此會顯示根據 (-(插入點) - 1) 計算的值。演示此功能的程式碼片段如下 −
int index1 = Arrays.binarySearch(arr, 6);
System.out.println("The integer 6 is at index " + index1);
int index2 = Arrays.binarySearch(arr, 7);
System.out.println("The integer 7 is at index " + index2);
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP