1:foriinrange(gap):iflist[i]>list[i" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

希爾排序-python版

系統 1945 0

希爾排序思想:
算法先將要排序的一組數按某個增量d分成若干組,每組中記錄的下標相差d.對每組中全部元素進行排序,然后再用一個較小的增量對它進行,在每組中再進行排序。當增量減到1時,整個要排序的數被分成一組,排序完成。
一般的初次取序列的一半為增量,以后每次減半,直到增量為1。

            
              
                def
              
              
                shell_sort
              
              
                (
              
              
                list
              
              
                )
              
              
                :
              
              
    n 
              
                =
              
              
                len
              
              
                (
              
              
                list
              
              
                )
              
              
    gap 
              
                =
              
               n
              
                //
              
              
                2
              
              
    new_list 
              
                =
              
              
                [
              
              
                ]
              
              
                while
              
               gap 
              
                >
              
              
                1
              
              
                :
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              gap
              
                )
              
              
                :
              
              
                if
              
              
                list
              
              
                [
              
              i
              
                ]
              
              
                >
              
              
                list
              
              
                [
              
              i
              
                +
              
              gap
              
                ]
              
              
                :
              
              
                list
              
              
                [
              
              i
              
                ]
              
              
                ,
              
              
                list
              
              
                [
              
              i
              
                +
              
              gap
              
                ]
              
              
                =
              
              
                list
              
              
                [
              
              i
              
                +
              
              gap
              
                ]
              
              
                ,
              
              
                list
              
              
                [
              
              i
              
                ]
              
              
        gap 
              
                =
              
               gap 
              
                //
              
              
                2
              
              
                ;
              
              
                if
              
               gap 
              
                ==
              
              
                1
              
              
                :
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              n
              
                )
              
              
                :
              
              
                if
              
               j 
              
                ==
              
              
                0
              
              
                :
              
              
                new_list
              
                .
              
              append
              
                (
              
              
                list
              
              
                [
              
              j
              
                ]
              
              
                )
              
              
                else
              
              
                :
              
              
                new_list
              
                .
              
              append
              
                (
              
              
                list
              
              
                [
              
              j
              
                ]
              
              
                )
              
              
                for
              
               k 
              
                in
              
              
                range
              
              
                (
              
              j
              
                ,
              
              
                0
              
              
                ,
              
              
                -
              
              
                1
              
              
                )
              
              
                :
              
              
                if
              
               new_list
              
                [
              
              k
              
                ]
              
              
                <
              
               new_list
              
                [
              
              k
              
                -
              
              
                1
              
              
                ]
              
              
                :
              
              
                        new_list
              
                [
              
              k
              
                ]
              
              
                ,
              
               new_list
              
                [
              
              k
              
                -
              
              
                1
              
              
                ]
              
              
                =
              
               new_list
              
                [
              
              k
              
                -
              
              
                1
              
              
                ]
              
              
                ,
              
               new_list
              
                [
              
              k
              
                ]
              
              
                return
              
               new_list





              
                if
              
               __name__ 
              
                ==
              
              
                '__main__'
              
              
                :
              
              
    a 
              
                =
              
              
                [
              
              
                58
              
              
                ,
              
              
                89
              
              
                ,
              
              
                56
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ,
              
              
                79879
              
              
                ,
              
              
                263536
              
              
                ,
              
              
                45215
              
              
                ,
              
              
                4543
              
              
                ]
              
              
    b 
              
                =
              
               shell_sort
              
                (
              
              a
              
                )
              
              
                print
              
              
                (
              
              b
              
                )
              
            
          

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 香港三级做爰大爽视频 | 天天操夜夜操狠狠操 | 国产精品视频一区二区三区 | 日本 a | 日本中文在线 | 99久久免费中文字幕精品 | 亚洲精品第一区二区在线 | 九九热精彩视频 | 午夜影院一区二区三区 | 国产高清在线视频一区二区三区 | 国产精品线在线精品国语 | 欧美亚洲激情 | 久久精品国产精品亚洲综合 | 国语国产真人对白毛片 | 天天操精品| 国产精品亚洲国产 | 免费观看黄色的网站 | 免费观看黄色的网站 | 国产亚洲欧美日韩国产片 | 99爱视频在线 | 国产精品亚洲精品久久成人 | 日本三级强在线观看 | 国产成人毛片视频不卡在线 | 久久狠狠 | 国产精品久久久久久久网站 | 综合 欧美 国产 视频二区 | 亚洲一区天堂 | 干干干操操操 | 日本阿v精品视频在线观看 日本爱爱免费视频 | 日韩毛片在线看 | 成人欧美一级毛片免费观看 | 奇米影视777俺要去888 | 久久频这里精品香蕉久久 | 日本一本一道久久香蕉免费 | 国产精品视频国产永久视频 | 欧美性xxxxxx爱 | 亚洲精品久久激情影院 | 夜夜操网| 精品久久洲久久久久护士免费 | 奇米在线视频观看 | 国内精品久久国产大陆 |