演算法----(6)希爾排序

來源:互聯網
上載者:User

標籤:位置   演算法   設定   分享圖片   class   ref   targe   分享   height   

 

 希爾排序是希爾(Donald Shell)於1959年提出的一種排序演算法。希爾排序也是一種插入排序,它是簡單插入排序經過改進之後的一個更高效的版本,也稱為縮小增量排序,同時該演算法是衝破O(n2)的第一批演算法之一

 

 1 def shellSort(nums): 2     # 設定步長 3     step = len(nums)//2 4     while step > 0: 5         for i in range(step, len(nums)): 6             # 類似插入排序, 當前值與指定步長之前的值比較, 符合條件則交換位置 7             while i >= step and nums[i-step] > nums[i]: 8                 nums[i], nums[i-step] = nums[i-step], nums[i] 9                 i -= step10         step = step//211     return nums12 13 14 if __name__ == ‘__main__‘:15     nums = [9, 3, 5, 8, 2, 7, 1]16     print(shellSort(nums))

 

 

圖片來源:https://www.cnblogs.com/chengxiao/p/6104371.html

演算法----(6)希爾排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.