Pythonの基本的なソートアルゴリズム

!は/ usr / binに/のenv pythonの- * -コーディング:UTF-8 - * - @time:2019年6月24日午前7時54下午
#1 @Author:LB @file:test.py 
輸入NPとしてnumpyの
ARR = np.random.randint(1000サイズ= 1000 の印刷タイプ(ARR) 


冒泡排序
デフbuble_sort(ARR):
     復帰
    のためのはxrange(LEN(ARR)):
         のための J はxrange(LEN(ARR) -i-1 ):
             もし [J + 1 ARR> [J] ARR :] 
                TMP = ARR [J + 1つの ]
                ARR [J+1] = ARR [J] 
                ARR [j]は = TMPの
     リターンをARR 

选择排序
DEF sel_sort(ARR)
     のためにはxrange(0、LEN(ARR)):
        最小 =のARR [i]は
        POS = のために J xrange(I、LEN(ARR)):
             もし ARR [J] < 分:
                POS = J  = ARR [j]が
         あれば、POS =!私:
            TMP =ARR [POS] 
            ARR [POS] =のARR [i]は
            ARR [I] = tmpに
     戻りARRの


插入排序
DEF insert_sort(ARR):
     場合 lenの(ARR)<= 1 戻りARR
     のための I はxrange(1 、LEN( ARR)):
        TMP = ARR [I]
         のための J はxrange(I、-1、-1 ):
             もし ARR [J-1]> TMP:
                [J] ARR = ARR [J-1 ]
             ブレーク
        ARR [j]は = tmpに
     戻りARRの


#1 シェル希尔排序
DEF shell_sort(ARR):
    ギャップ = LEN(ARR)// 2
     ながらギャップ> 0:
          I はxrange(ギャップ、LEN(ARR)):
            J = 
            TMP = ARR [I]
             ながら J> =ギャップ ARR [J-ギャップ]> TMP:
                ARR [J] =のARR [J- ギャップ] 
                jは - = ギャップを
            ARR [J] = TMP
        ギャップ // = 2
    リターンのARR
 印刷 shell_sort(ARR)

 

おすすめ

転載: www.cnblogs.com/LiuBingBlogs/p/11517292.html