Javaでソートされた配列内の要素を検索する方法


  1. バイナリ検索アルゴリズムの概要: バイナリ検索アルゴリズムは、ソートされた配列を対象に使用されます。以下にその手順を示します。

    • 探している要素を配列の中央の要素と比較します。
    • 探している要素が中央の要素よりも小さい場合、配列の前半部分に対して再帰的にバイナリ検索を実行します。
    • 探している要素が中央の要素よりも大きい場合、配列の後半部分に対して再帰的にバイナリ検索を実行します。
    • 探している要素が中央の要素と等しい場合、要素が見つかったとして処理を終了します。
  2. Javaでのバイナリ検索の実装例: 以下に、Javaでソートされた配列内の要素を検索するためのバイナリ検索の実装例を示します。

    public class BinarySearch {
       public static int binarySearch(int[] arr, int target) {
           int left = 0;
           int right = arr.length - 1;
    
           while (left <= right) {
               int mid = left + (right - left) / 2;
    
               if (arr[mid] == target) {
                   return mid;
               }
    
               if (arr[mid] < target) {
                   left = mid + 1;
               } else {
                   right = mid - 1;
               }
           }
    
           return -1; // 要素が見つからなかった場合
       }
    
       public static void main(String[] args) {
           int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
           int target = 5;
           int result = binarySearch(arr, target);
    
           if (result == -1) {
               System.out.println("要素が見つかりませんでした。");
           } else {
               System.out.println("要素が見つかりました。インデックス: " + result);
           }
       }
    }

    上記の例では、binarySearchメソッドがソートされた配列とターゲット要素を受け取り、要素が見つかった場合はそのインデックスを返します。もし要素が見つからない場合は-1を返します。

このように、バイナリ検索アルゴリズムを使用することで、ソートされた配列内の要素を効率的に検索することができます。