Code Copilot
コーディングをより速く, 賢く — プログラマの専門知識を手元に GPT-4を搭載した有料サービスであるGithub Copilot Chatのシステム設定を組み込んだAIエージェントです。デバッグ, コードスニペットの作成, 質問 etc.
…がお気に入り登録しました。
投稿日時:
- プロンプト実行例
こんにちは。Code Copilotです。プログラミング・コード・開発に関する質問にお答えします。
Pythonで二分探索のコードを書き、分かりやすく解説してください。
Python1def 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
ループを使用して、left
がright
以下である間、探索を継続します。これは探索範囲が存在する限り繰り返されます。- 探索範囲の中央
mid
を計算し、arr[mid]
がtarget
に等しいかを判断します。等しければその位置mid
を返します。 arr[mid]
がtarget
より小さければ、target
はmid
より右側にあると判断し、探索範囲の左端left
をmid + 1
に更新します。arr[mid]
がtarget
より大きければ、target
はmid
より左側にあると判断し、探索範囲の右端right
をmid - 1
に更新します。- もし
target
が配列内に存在しない場合、-1
を返します。
コメント 0
他のプロンプトもチェック
マーケティング一般
あなたのビジョンを形にするための独自のブランドコンセプト作成を支援します。ターゲット層へ魅力的なメッセージ伝達し、創造性を最大限に発揮しましょう。201463