バイナリサーチアルゴリズムday17のPythonの基礎

#アルゴリズムは何である
シンプルかつ複雑なコンピュータ脳:計算#の方法は、

#99 * 13 * 13 = 1287 = 100--13
#検索:検索データ
#ソート:
#最短パス

#私たちは、過去のすべてのアルゴリズムを学習している
、より良いアルゴリズムを作成するために、#を学ぶベースのアルゴリズム
すべての物事がする既製のソリューションを適用することができない#を
時々アルゴリズムは、知識が新たな問題を解決することを学んだ使用されます#

#バイナリ検索アルゴリズムが注文リストに対処しなければなりません
#1 = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66、 67,69,72,76,82,83,88]
#50000004999998
#コードの実装
:#は、DEF(L、AIM)検索
#mid_index = LEN(L)// 2
:[mid_index <AIM IF#1を
#new_l = L [mid_index + 1:]
#は見つける(new_l、AIM)
#1 ELIFのL [mid_index]> AIM:
#new_l = Lの[:mid_index]
が見つける(new_l、AIM)
他#:
印刷( 'が見つかり'、 mid_index、L [mid_index])
#1
#検索(L、66)

L = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83 、88]
:#は、DEF(L、目指して、スタート= 0、終了=なし)を見つける
#エンド= LEN(L)終了がある場合なし他のエンド#エンド= LEN(L)24
/ - #mid_index =(開始終了) / 2 +スタート#计算中间值12 + 0 = 12
、Lは[mid_index <目指す場合#:#1 [12] <44#41 <44
#検索(L、目指し、= mid_index + 1、端=始端) #検索(L、44、START = 13、エンド= 24)
#1 ELIF Lは[mid_index]>目的:
#の検索は(L、エンド= mid_index-1 =開始開始、AIM)
他#:
プリント( '找到了」、mid_index、AIM)
#1
DEF#、(Lを見つける目指し、0 =開始、終了=なし):#1、44、START = 13、エンド= 24
#端= LEN(L)の端部はなし他端#ある場合エンド= 24
#mid_index =(終了-開始)// 2 +開始#计算中间值24-13 / 2 = 5 + 13 = 18
#Lは[mid_index <目指す場合:#1 [18] <44#67 <44
#検索(L、目指し、開始= mid_index + 1、エンド=エンド)
#1 ELIF Lは[mid_index]>目的:#67> 44
#検索(L、目指し、=開始開始、終了= mid_index-1)#検索(L、44、START = 13、エンド= 17)
他#:
プリント( '找到了'、mid_index、AIM)

#DEF検索(= 0を起動し、目指し、L、端=なし):#1、44、= 13、エンド= 17開始していない
端部はなし他端位端である場合17 =#端= LEN(L)を
#はmid_index =(エンド-開始)// 2 +開始#计算中间值17-13 / 2 = 2 + 13 = 15
#L [mid_index <目指す場合:#1に[15] <44#55 <44
#検索は(lは、目指して、スタート= mid_index + 1、エンド=エンド)
#1 ELIFのL [mid_index]>目的:#55> 44
#検索(L、目指し、開始=開始、終了= mid_index-1)#検索(L、44は、START = 13、エンド= 14)
他の#:
プリント( '找到了'、mid_index、狙い)

#DEF(Lを目指し、= 0、終了=なし開始)検索:#1、44、START = 13、エンド= 14
端なし他端位端である場合= 14#端= LEN(L)を
#1 mid_index =(終了-開始)// 2 + 14-13 / 2 = 0 + 13 = 13#计算中间值開始
L場合#[mid_index <目指し:#1に[13] <44#42 <44
#検索(L、目的、= mid_index + 1、エンド=エンド)#検索(L、44、START = 14、エンド= 14)を起動
#42> 44:[mid_index]>目指し#1 ELIFのL
、#検索(Lは、目指し、開始=開始エンド= mid_index-1)
他の#:
プリント( '找到了'、mid_index、AIM)

DEF(= 0、終了=なし開始し、目指して、L)を見つける:
最後はなし他のエンドであれば終了= lenは(L)
mid_index =(終了-開始)// 2が起動+
の場合、開始<=エンド:
Lであれば[mid_index <目指し:
戻り検索(L、目指し、1 = mid_index +開始、終了=端)
ELIF Lは[mid_index]>目的:
リターン検索(L、目指し、開始=開始、終了= mid_index-1)
他:
戻りmid_index
他:
リターン'找不到这个值'


=検索RET(L、44)
印刷(RET)
パラメータ終了
#戻り値を
どのように行うに単語を見つけることができません#

#1 l.index()


#67は、二回の呼び出しが起こる
数回発生した#66を
見られない#44


#年齢は、バイナリ検索、3つのメニューコードを読んで
、n番目のフィボナッチ数は番号では##はフィボナッチを尋ねる
階乗#
#3!3 * 2 * 1
#エクストラクレジット:試験の追加質問の
#再帰

 

おすすめ

転載: www.cnblogs.com/wang-tan/p/11105451.html