データ構造とアルゴリズム - ソートアルゴリズム - 選択ソート

 ##################選択ソート#######################

「」「
ソートを選択
?アイデアは一種かのある
今が配列である連想リスト= [54,226,93,17,77,31,44,55,20] 
すべての最初のトラバーサル、nは1、ヘッドで最年少置かれます、連想リスト= [17、54,226,93,77,31,44,55,20] 
トラバースの残りのn-1正面に最小に番目、連想リスト= [17,20 54,226,93,77 、31,44,55] 
及び循環された、端部が、全体の配列は、小当たりで


実現するためのプログラム
の最初のラウンド、0の最も最小値のインデックス、分= 0、次いでトラバーサル、顔をそれは小さな交換を行うようになった、連想リスト[0]、連想リスト[ 3] =連想リスト[3]、連想リスト[0]は
第二ラウンド、1の最も最小値の添え字、分= 1、次いで場合に、横断それを与えるために小さなが交換に始まり、連想リスト[1]、連想リスト[ 8] =連想リスト[8]、連想リスト[0] 
第三ラウンド、添字2の最も最小値、最小= 2、次いで、トラバース、出会いが小さな交流、連想リスト[2]、連想リストを始めた[ 5] =連想リスト[5]、連想リスト[0] 
全体的なアイデアは、2つの部分に分割され、全体のシーケンスを置くことであるので、常に置かれているバック、最小の前に行きます


「」"

 

##################選択ソート#######################

#初版:
DEFのselection_sort(連想リスト):
    N- = LEN(連想リスト)
    #N-1回の選択操作のために必要な
    (n-1)の範囲内のiについて:
        #最小記録位置
        min_index I = 
        #I + 1位置から選択された最小データの終わり
        範囲におけるJのための(I + 1、N - ):
            連想リストIF [J] <連想リスト[min_index]:
                min_index = Jの
        #選択されたデータが正しい位置にない場合、交換
        連想リスト[i]は、連想リスト[ min_index] =連想リスト[min_index]、連想リスト[I] 
第二版:
DEFのselection_sort2(連想リスト):
    N- = LEN(連想リスト)
    #N-1回の選択操作のために必要
    :範囲(N-1)でIため
        #レコード最小位置
        min_index = I 
        最小位置データから選択されたエンドI + 1〜# 
        範囲内のjに対して(I + 1 、N):
            IF連想リスト[J] <連想リスト[min_index]:
                min_index = Jの
        #選択されたデータが正しい位置にない場合、交換
        min_index = I :! IF 
            連想リスト[I]、連想リスト[min_index] =連想リスト[min_index]、連想リスト[I 】


IF __name__ == '__main__':
    連想リスト= [54,226,93,17,77,31,44,55,20】
    プリント(連想リスト)
    selection_sort(連想リスト)
    プリント(連想リスト)

 

 

##################選択ソート#######################

 

##################選択ソート#######################

##################選択ソート#######################

おすすめ

転載: www.cnblogs.com/andy0816/p/12348379.html