ホームページ > バックエンド開発 > C++ > C++ で二分探索アルゴリズムを使用する方法

C++ で二分探索アルゴリズムを使用する方法

WBOY
リリース: 2023-09-22 08:24:25
オリジナル
1128 人が閲覧しました

C++ で二分探索アルゴリズムを使用する方法

C での二分探索アルゴリズムの使用方法

二分探索アルゴリズム (Binary Search) は、順序付けされたデータ セットを両方の半分の検索に分割する効率的な検索アルゴリズムです。毎回設定したデータの中間位置を基準として、その中間位置の値と目標値を比較し、目標値が見つかるか、目標値が存在しないと判断されるまで探索範囲を絞り続けます。ここでは、C での二分探索アルゴリズムの使用方法と具体的なコード例を紹介します。

  1. 検索範囲を決定する
    バイナリ検索アルゴリズムを使用する前に、まず、検索対象のデータ セットが順序付けされていることを確認する必要があります。たとえば、特定のターゲット値 target を検索する整数 nums の順序付けされた配列があるとします。
  2. 二分探索関数の定義
    C では、二分探索アルゴリズムを実装する関数を定義できます。この関数の入力パラメータには、検索対象の配列、配列の開始位置と終了位置、およびターゲット値 target が含まれます。関数の戻り値は配列内のターゲット値のインデックスです。ターゲット値が存在しない場合は、特定の値 (-1 など) を返すことができます。

具体的な関数定義は次のとおりです。

int binarySearch(int nums[], int start, int end, int target) {
    // 定义二分搜索的起始位置和结束位置
    int left = start;
    int right = end;
    
    while (left <= right) {
        // 计算中间位置
        int mid = left + (right - left) / 2;
        
        // 如果中间位置的值等于目标值,直接返回索引
        if (nums[mid] == target) {
            return mid;
        }
        
        // 如果中间位置的值大于目标值,更新结束位置
        else if (nums[mid] > target) {
            right = mid - 1;
        }
        
        // 如果中间位置的值小于目标值,更新起始位置
        else {
            left = mid + 1;
        }
    }
    
    // 目标值不存在,返回-1
    return -1;
}
ログイン後にコピー
  1. 二分探索関数の呼び出し
    二分探索関数を呼び出すことで、ターゲットのインデックスを取得できます。配列内の値。たとえば、順序付けされた配列 nums があり、ターゲット値 target を検索したいとします。次のコードを使用して、バイナリ検索関数を呼び出すことができます。
int nums[] = {1, 3, 5, 7, 9};
int n = sizeof(nums) / sizeof(nums[0]);
int target = 5;
int index = binarySearch(nums, 0, n - 1, target);

if (index != -1) {
    cout << "目标值的索引为:" << index << endl;
}
else {
    cout << "目标值不存在!" << endl;
}
ログイン後にコピー

上記のコードでは、まず順序付けられた配列 nums を定義し、次に配列の長さ n を計算します。次に、ターゲット値 target が定義され、バイナリ検索関数 binarySearch が呼び出され、ターゲット値のインデックスが検索されます。最後に、出力は関数によって返された結果に基づいています。

上記の手順により、C の二分探索アルゴリズムを使用して効率的な検索操作を実行できます。実際のアプリケーションでは、特定のシナリオや要件に従って二分検索関数を呼び出し、返された結果に基づいてさらなる処理を実行できます。

概要
バイナリ検索アルゴリズムは、順序付けされたデータ収集に適した効率的な検索アルゴリズムです。 C では、二分探索関数を定義し、検索対象の配列、開始位置、終了位置、ターゲット値を渡すことで検索できます。探索範囲を更新し続けることで、最終的に目的の値のインデックスを見つけることができます。この記事の概要とコード例が、読者が二分探索アルゴリズムをより深く理解し、適用するのに役立つことを願っています。

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

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