Pythonは、古典的なソートを実現します

 

バブルソート

デフバブル(ARR):
    フラグ = Falseの
     ための J における範囲(LEN(ARR)-1 :)
         のための I における範囲(LEN(ARR)-1- J):
             もし ARR [I]> ARR [I + 1 ]:
                ARR [I]、[I ARR +1] = ARR [I + 1 ]、[I] ARR 
                フラグ = なら ないフラグ:
             リターンARRの
     戻り ARR

選択ソート

デフchooice(ARR):
    LG = LEN(ARR)

    のための J における範囲(LG-1 ): = jの
         ための I における範囲(J + 1 、LG):
             もし ARR [分]> ARR [I]: = I 

        ARR [分]、ARR [J] =のARR [J]、ARR [分]
     戻り ARR

挿入ソート

デフINSERT_ORDER(ARR)
     のための I における範囲(1 :、LEN(ARR))
        、J = I-1
         つつ J> = 0:
             もし ARR [J + 1] < ARR [J]:
                ARR [J]、ARRの[ J + 1] = ARR [J + 1 ]、ARR [J] 
                J = J-1

高速行

DEF (ARR、左、右)get_mid:
    ミッド =のARR [左]
     ながら <左、右:
         ながら右<左および ARR [右]> = ミッド: - = 1つの
        ARR [左] = ARR [右]
         ながら左<右および [左] ARR <= ミッド: + = 1つの
        ARR [右] = ARR [左] 
    [右] ARR = ミッド
     戻り


DEF (ARR、左、右)をquick_sort:
     場合左> 右:
        戻り
    PAR = get_mid(ARR、左、右)
    quick_sort(ARR、左、パー -1 
    quick_sort(ARR、パー + 1、右)

バイナリ検索

デフbinary_search(ARR、v)は:
    半ば = LEN(ARR)// 2
     であれば ARR [中期] == V:
         返す真の
     場合 lenは(ARR)== 1 返すFalseの
     場合 ARR [中期]> V:
         リターンbinary_search( ARR [:ミッド]、v)の
     戻り binary_search(ARR [半ば+ 1:]、V)

 

おすすめ

転載: www.cnblogs.com/orvis/p/11087079.html