知人バイナリサーチアルゴリズム----

#どのようなアルゴリズム
方法#計算:人間の脳の複雑なシンプルなコンピュータ


99 * 13 = 1287 = 13 * 100 - 13
#検索:データを探します
#並べ替え:
#そのような百度マップ方向として最短経路

#私たちの学習アルゴリズムは、過去形であります
#より良いアルゴリズムを作成するために、アルゴリズムの基礎を理解します
#すべてのものは、に既製のソリューションを適用できるわけではありません
#時々、アルゴリズムは、知識が新たな問題を解決することを学んだ使用します

#バイナリ検索アルゴリズムは、順序付きリストに対処しなければなりません
L = [ 234591215192037404246484952555663666869707275787980 ]
#コードの実装
#デフ(L、AIM)を見つけます:
#1 mid_index = LEN(L)// 2場合、Lは[mid_index < 目指して:
#1 [mid_index + 1 :]
#new_l = L [mid_index + 1 :]
#mid_index = LEN(new_l)// 2 
#検索(new_l、AIM)
#1のelifのL [mid_index] > 目指して:
#new_l = Lの[:mid_index]
#見つける(new_l、AIM)他に
印刷#(' 見つかった' 、mid_index、L [mid_index])
#検索(L、66 

#DEF(Lを目指し、開始見つける = 0、終了= LEN(リットル))。
Mid_index位 =(終了-開始])// 2 +中間値スタート#計算IF L [mid_index < AIMました:
#検索(リットル、開始、目指す = mid_index、エンド= エンド)
#1のelifのL [mid_index] > 目指して:
#検索(L、目指し、起動開始=、端= mid_index- 1 他に
印刷#(' 見つかった' 、mid_index、AIM)
検索#(L、66)#見つける19  66 
#を印刷する(l.index(66))#19

#パラメータ終了
#戻り値
どのように行うに言葉を見つけることができません#



#パラメータ終了
どのように行うに言葉を見つけることができません#
デフ(起動しない、目指し、L見つけ = 0、終了= なし):
    終了 = LEN(リットル)の場合、エンドはある   なし   他の終わり
    mid_index =(終了-開始)// 2 +開始#计算中间值
    もし開始<= 終了:
         場合、Lは[mid_index < 目指し:
             戻り検索(L、目指し、= mid_index +開始1、端= 終了)
        ELIF Lは[mid_index] > 目指して:
             リターン検索(L、目指して、スタート=開始、終了= mid_index- 1 戻りmid_indexを
            #Print(' 見つかった' 、mid_index、AIM)の
     リターン ' 値を見つけることができません' 
RET =検索(L、66#見つかっ)19  66 
印刷(RET)#19

 

おすすめ

転載: www.cnblogs.com/cfancy/p/11715985.html