Java程式實現字元陣列上的二分查詢


在本文中,我們將學習如何使用Java在字元陣列上實現二分查詢。字元陣列上的二分查詢可以透過使用Arrays.binarySearch()方法來實現java.util包。如果該字元元素存在於陣列中,則此方法返回所需字元元素的索引,否則返回(-(插入點) - 1),其中插入點是該元素將在陣列中插入的位置。

問題陳述

用Java編寫一個程式,在字元陣列上實現二分查詢

輸入

'b', 's', 'l', 'e', 'm'

輸出

The sorted array is: b e l m s
The character e is at index 1
The character z is at index -6

在字元陣列上實現二分查詢的步驟

以下是字元陣列上實現二分查詢的步驟:

  • 首先定義一個包含未排序元素的字元陣列,我們將使用Arrays.sort()對字元陣列進行排序。
  • 使用for迴圈遍歷陣列以顯示排序後的字元。
  • 呼叫Arrays.binarySearch()方法在排序後的陣列中搜索特定字元。
  • 檢查返回的索引,如果找到該字元,則返回索引。
  • 如果未找到該字元,則返回-1

Java程式實現字元陣列上的二分查詢

以下是字元陣列上實現二分查詢的Java程式:

import java.util.Arrays;
public class Demo {
   public static void main(String[] args) {
      char c_arr[] = { 'b', 's', 'l', 'e', 'm' };
      Arrays.sort(c_arr);
      System.out.print("The sorted array is: ");
      for (char i : c_arr) {
         System.out.print(i + " ");
      }
      System.out.println();
      int index1 = Arrays.binarySearch(c_arr, 'e');
      System.out.println("The character e is at index " + index1);
      int index2 = Arrays.binarySearch(c_arr, 'z');
      System.out.println("The character z is at index " + index2);
   }
}

輸出

The sorted array is: b e l m s
The character e is at index 1
The character z is at index -6

程式碼解釋

上述程式首先建立一個字元陣列c_arr[],其中包含未排序的元素,例如'b''s''l''e''m'。它使用java.util包中的Arrays.sort()對該陣列進行排序,然後使用for迴圈列印排序後的字元。接下來,它使用Arrays.binarySearch()搜尋字元'e',該方法找到它並顯示其索引。該程式還查詢字元'z',該字元不在陣列中,該方法返回一個負值,指示'z'將在排序陣列中的位置。總的來說,此程式有效地演示瞭如何在Java中對字元陣列執行二分查詢。

更新於: 2024年9月29日

718 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.