比較検索なら 天秤AI byGMO
Code Copilot

Code Copilot

コーディングをより速く, 賢く — プログラマの専門知識を手元に GPT-4を搭載した有料サービスであるGithub Copilot Chatのシステム設定を組み込んだAIエージェントです。デバッグ, コードスニペットの作成, 質問 etc.

10
0
201
30
user_166910699665272832
user_125760701587935232
user_123038585507129344
がお気に入り登録しました。

投稿日時:

    • プロンプト実行例
    Code Copilot

    こんにちは。Code Copilotです。プログラミング・コード・開発に関する質問にお答えします。

    Pythonで二分探索のコードを書き、分かりやすく解説してください。

    Code Copilot
    Python
    1def binary_search(arr, target):
    2    """
    3    二分探索を利用して配列内の目的の値の位置を探す関数
    4    :param arr: 探索を行うソート済みの配列
    5    :param target: 探索する値
    6    :return: 目的の値のインデックス、存在しない場合は-1を返す
    7    """
    8    left = 0  # 探索範囲の左端
    9    right = len(arr) - 1  # 探索範囲の右端
    10
    11    while left <= right:
    12        mid = (left + right) // 2  # 探索範囲の中央の位置
    13        if arr[mid] == target:  # 目的の値を見つけた場合
    14            return mid
    15        elif arr[mid] < target:  # 中央の値より目的の値が大きい場合
    16            left = mid + 1  # 探索範囲を右側に絞る
    17        else:  # 中央の値より目的の値が小さい場合
    18            right = mid - 1  # 探索範囲を左側に絞る
    19    return -1  # 目的の値が配列内に存在しない場合
    20
    21# 配列と目的の値の例
    22arr = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
    23target = 5
    24
    25# 二分探索関数を呼び出して結果を表示
    26index = binary_search(arr, target)
    27print(index)
    • binary_search関数は、ソート済みの配列arrと検索対象の値targetを引数として受け取ります。
    • 探索範囲の左端をleft、右端をrightとして、これらを使って探索範囲を管理します。
    • whileループを使用して、leftright以下である間、探索を継続します。これは探索範囲が存在する限り繰り返されます。
    • 探索範囲の中央midを計算し、arr[mid]targetに等しいかを判断します。等しければその位置midを返します。
    • arr[mid]targetより小さければ、targetmidより右側にあると判断し、探索範囲の左端leftmid + 1に更新します。
    • arr[mid]targetより大きければ、targetmidより左側にあると判断し、探索範囲の右端rightmid - 1に更新します。
    • もしtargetが配列内に存在しない場合、-1を返します。

    コメント 0

    他のプロンプトもチェック