C での二分探索アルゴリズムの使用方法
二分探索アルゴリズム (Binary Search) は、順序付けされたデータ セットを両方の半分の検索に分割する効率的な検索アルゴリズムです。毎回設定したデータの中間位置を基準として、その中間位置の値と目標値を比較し、目標値が見つかるか、目標値が存在しないと判断されるまで探索範囲を絞り続けます。ここでは、C での二分探索アルゴリズムの使用方法と具体的なコード例を紹介します。
具体的な関数定義は次のとおりです。
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; }
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 サイトの他の関連記事を参照してください。