C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のArray.BinarySearchメソッドの使い方 – 配列要素の位置を検索する

C#のArray.BinarySearchメソッドを使用すると、配列内の要素がどの位置(インデックス)にあるかを検索できます。このメソッドは二分探索(バイナリサーチ)アルゴリズムを採用しているため、大量のデータを扱う場合でも高速に処理できるのが特徴です。

Array.BinarySearchメソッドの基本的な使い方

まず、検索対象となる文字列配列を設定します。

string[] str = { "a", "m", "i", "t" };

次に、Array.BinarySearchメソッドを使って、文字「t」の位置を取得します。

Array.BinarySearch(str, "t");

サンプルコード

以下に完全なコードを示します。

using System;
using System.Text;
public class Demo {
   public static void Main() {
      string[] str = { "a", "m", "i", "t"};
      // BinarySearchメソッドで文字「t」の位置を取得
      int res = Array.BinarySearch(str, "t");
      // 取得した位置を表示
      Console.WriteLine("Index : "+res);
   }
}

実行結果

Index : 3

この例では、配列 str の中で「t」はインデックス3の位置に存在するため、出力結果は「3」となります。インデックスは0から始まるため、4番目の要素がインデックス3に対応することに注意してください。

注意点:配列は事前にソートしておく

Array.BinarySearchメソッドは二分探索を行うため、検索対象の配列があらかじめ昇順にソートされていることが前提となります。ソートされていない配列に対して実行すると、意図しない結果や負の値が返される場合があります。そのような場合は、事前に Array.Sort メソッドなどで配列を並べ替えてから検索を実行してください。

  1. JavaScriptのArray.isArray()メソッドとは?オブジェクトが配列かどうかを判定する方法

    Array.isArray()メソッドとはJavaScriptのArray.isArray()メソッドは、指定された値が配列(Array)であるかどうかを判定するための静的メソッドです。引数に渡したオブジェクトが配列であれば true を、そうでなければ false を返します。typeof 演算子では配列も object と判定されてしまうため、配列を正確に見分けたい場合には、この Array.isArray() メソッドを使用するのが確実です。基本構文Array.isArray(value)サンプルコード以下は、Array.isArray() メソッドを使ってオブジェクトが配列かどうかをチ

  2. JavaScriptのarray.includes()メソッドの使い方をわかりやすく解説

    array.includes()メソッドとはJavaScriptのarray.includes()メソッドは、配列の中に特定の要素が含まれているかどうかを判定するために使用されます。要素が存在すれば true、存在しなければ false を返します。基本構文arr.includes(searchElement[, fromIndex])searchElement:検索したい要素を指定します。fromIndex(省略可能):検索を開始するインデックス位置を指定します。デフォルトは 0 です。なお、includes()メソッドは大文字と小文字を区別する点に注意してください。サンプルコード以下は、a