注意:
プレゼンテーションツールアルゴリズム: https://algorithm-visualizer.org/
参考:https://www.runoob.com/python3/python3-examples.html
参考:「アルゴリズム図」
環境:ビジュアルコードpython2.7
リニア検索
説明:指定された値を見つけるために最後まで配列の各要素をチェックするために特定の順序です。
時間: O(N-)
アイコン:
例:
#- * -コーディング:UTF-8 - * - #は/ usr / binに/ ENVのpython! 輸入SYS #規定値の検索 DEFのline_search(ARR、値) のための I における範囲(1 :(ARR)LEN) プリント(U ' - >参照配列値:{0} ' .format(ARR [I]))を IF ARR [I] == 値: リターン・I リターン -1 もし __name__ == ' __main__ ' : ARR = [-5,10,8,6,0,5 ] searchValue。= 5 プリント(U ' 参照配列:{0}、ルックアップ値:{} 1 ' .format(ARR、searchValue)) インデックス = line_search(ARR、searchValue) IFインデックス= -1! : 印刷(U ' 配列インデックス0}の要素が{である' .format(インデックス)) 他: 印刷(Uは' 見つかりません!' )
' 「」 参照配列:[ - 5と10、8、6、0、5]は、値を見つけるために:5 - >配列の値を検索:10 - >配列の値を検索:8 - >配列の値を検索:6 0: - >値の配列を探します - >配列の値を検索:5 配列の要素のインデックス5 「」」
バイナリ検索
説明:また、注文したアレイ内の特定の要素を探しのためのバイナリ検索として知られています。特定の要素が未満またはそれ以上の配列の中央の要素が大きいか小さいその表情の真ん中要素の半分以上である以上ある場合は、検索プロセスは、配列の途中から開始して下さい。
時間: O(logN個)
アイコン:
例:
#- * -コーディング:UTF-8 - * - #は/ usr / binに/ ENVのpython! #UnicodeEncodeErrorを:ポジション0-1にある「ASCII」コーデックができないエンコードの文字:序ない範囲で 輸入SYS リロード(SYS) sys.setdefaultencoding(' UTF8 ' ) デフbinary_search(_list、searchNum): 低 = 0 #最小の添字 ハイ= lenは(_list) - 1 #インデックスの最大数 #低<いくつかの中間=ハイ証明します インデックス= 1 しばらく低<= 高: MID =(ハイ+低)/ 2 #中間添字 印刷(U ' 番号検索は、次のとおり。{0}、低= {} 1、高MID = {} = {2} 3。' .format(指数、低、高、中)) GUESS = _list [MID] IF推測が== searchNum: リターンMID のelif GUESS> searchNum: #中間数が指定された数、移動指数の最大数よりも大きいです 高い=中旬 - 1 他: 低 =ミッド+ 1 インデックス + = 1 戻りなし もし __name__ == ' __main__ ' : MAXCOUNT = INPUT(Uは' 最大数のリストを入力してください:' .encodeを(' GBK ' )) searchNum = INPUT(Uは' 見つけるために、値を入力してください:' .encode(' GBK ' )) 印刷(U ' 検索順序リストを0から{0}へのデータ見つける。:{} 1 ' .format(MAXCOUNT、searchNum)) インデックス = binary_search(レンジ(MAXCOUNT)、searchNum) 印刷(Uは' としてインデックスを見つけるために:' + STR(インデックス)) 「」」 最大値のリストを入力してください:1000 569:あなたが探している値を入力してください。 順序リストを検索し、データは1000から0を見つけることです:569 検索数がある:1、低= 0、高い= 999半ば= 499 2、低= 500、= 999半ば= 749ハイ:の数を探します 検索数は次のとおりです。3、低= 500、高= 748半ば= 624 4、低= 500、= 623半ば= 561ハイ:の数を探します 検索数がある:5、低= 562、高= 623半ば= 592 検索数は:6、低= 562、高= 591半ば= 576 検索数は次のとおりです。7、低= 562、高= 575半ば= 568 検索数がある:8、低= 569、高= 575半ば= 572 検索数がある:9、低= 569、高= 571半ば= 570 検索数がある:10、低= 569、高= 569半ば= 569 569:インデックスをご覧ください 「」」