
def b_srch2(key):
min = 0
max = len(a)-1
while min <= max:
mid = int((min+max)/2)
if a[mid]>key:
max = mid-1
if a[mid]<=key:
min = mid+1
if max>=0 and a[max]==key:
return max
else:
return -min-1
教科書に二分探索法の例が上のように載っていたのですが、
各行でどのような処理が行われているかイメージができません。各行で行われている処理をできるだけ詳しく教えてくれると助かります。
No.1ベストアンサー
- 回答日時:
うん、こりゃダメだ。
Pythonはインデント付けないと読めないんで、ideone
https://ideone.com/
辺りにコード貼ってリンク貼ってくれた方が良いかな。
あと、例えばaが何表すのか全然明らかじゃないし、あと、Pythonコードとしては「組み込み関数名」である、maxとかminを変数名として使ってたり、良いPythonコードたぁ言えないですね。
まあ、いずれにせよ、(多分)ソート済のリストaに対して、真ん中で二分して、keyを探して、また二分して・・・・ってやっていくんで「二分」探索、っつー、そのまんまの名前なわけですけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1日に1人がこなせるプログラム...
-
access2003 クエリSQL文に...
-
フィルターかけた後、重複を除...
-
JANコードとPOSコードは同じ?
-
access2021 VBA メソッドまたは...
-
ActiveReportの改ページ不具合...
-
特定行の背景色を変えたいのですが
-
JIPS-Eコードのコード表について
-
COBOLの文法
-
レポートでグループレベルの変...
-
access でエラーを回避するには?
-
VBAでファイルオープン後にコー...
-
pythonで同じコード内で複数の...
-
JavaScriptの定数名が取り消し...
-
ピクチャーボックス内の三角形...
-
Exel VBA 別ブックから該当デ...
-
PreviewKeyDownイベントが2回...
-
VBAでdo内にてWAITを使うとエラ...
-
1、Rstudioで回帰直線を求める...
-
ExcelVBAの転記について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報