ホームページ > バックエンド開発 > C#.Net チュートリアル > C# を使用して二分探索アルゴリズムを作成する方法

C# を使用して二分探索アルゴリズムを作成する方法

WBOY
リリース: 2023-09-19 12:42:37
オリジナル
1296 人が閲覧しました

C# を使用して二分探索アルゴリズムを作成する方法

C# を使用して二分探索アルゴリズムを作成する方法

二分探索アルゴリズムは効率的な検索アルゴリズムであり、順序付けされた配列内の特定の要素の位置を検索します。配列であり、時間は複素数で、次数は O(logN) です。 C# では、次の手順で二分探索アルゴリズムを作成できます。

ステップ 1: データの準備

まず、検索対象のデータとしてソートされた配列を準備する必要があります。配列内の特定の要素の位置を見つけたいとします。

int[] data = {1, 3, 5, 7, 9, 11, 13, 15};
ログイン後にコピー

ステップ 2: 二分検索関数を作成する

次に、二分検索アルゴリズムを実装する関数を作成します。関数のパラメータには、検索する要素の値と検索する配列が含まれます。関数の戻り値は、配列内で見つかった要素のインデックス値、または要素が見つからない場合は -1 です。

int BinarySearch(int target, int[] data)
{
    int left = 0;
    int right = data.Length - 1;

    while (left <= right)
    {
        int mid = left + (right - left) / 2;

        if (data[mid] == target)
        {
            return mid;
        }
        else if (data[mid] < target)
        {
            left = mid + 1;
        }
        else
        {
            right = mid - 1;
        }
    }
    
    return -1;
}
ログイン後にコピー

ステップ 3: 二分検索関数を呼び出す

これで、メイン プログラム内で上で記述した二分検索関数を呼び出して、特定の要素を見つけることができます。最初に検索する要素の値を定義し、次にバイナリ検索関数を呼び出して結果を出力します。

int target = 13;
int result = BinarySearch(target, data);

if (result == -1)
{
    Console.WriteLine("在数组中未找到该元素!");
}
else
{
    Console.WriteLine("该元素在数组中的索引为:" + result);
}
ログイン後にコピー

完全なコード例は次のとおりです。

using System;

public class BinarySearchExample
{
    static void Main(string[] args)
    {
        int[] data = {1, 3, 5, 7, 9, 11, 13, 15};
        int target = 13;

        int result = BinarySearch(target, data);

        if (result == -1)
        {
            Console.WriteLine("在数组中未找到该元素!");
        }
        else
        {
            Console.WriteLine("该元素在数组中的索引为:" + result);
        }
    }

    static int BinarySearch(int target, int[] data)
    {
        int left = 0;
        int right = data.Length - 1;

        while (left <= right)
        {
            int mid = left + (right - left) / 2;

            if (data[mid] == target)
            {
                return mid;
            }
            else if (data[mid] < target)
            {
                left = mid + 1;
            }
            else
            {
                right = mid - 1;
            }
        }

        return -1;
    }
}
ログイン後にコピー

上記のコード例を通じて、C# を使用して二分探索アルゴリズムを作成する方法を学習できます。実際の開発では、特定のニーズに応じてアルゴリズムを調整および最適化することで、より効率的な検索機能を実現できます。

以上がC# を使用して二分探索アルゴリズムを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート