排序算法(二):希爾排序

希爾排序是插入排序的優化版,其算法表示如下:

def shell_sort(arr):
    if len(arr) == 1:
        return arr
    gap = round(len(arr) / 2)
    while gap > 0:
        # insert sort
        for i in range(gap, len(arr)):
            temp = arr[i]
            j = i - gap
            while j >= 0 and arr[j] > temp:
                arr[j + gap] = arr[j]
                j -= gap
            arr[j + gap] = temp
        gap = round(gap / 2)
    return arr
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 該系列文章主要是記錄下自己暑假這段時間的學習筆記,暑期也在實習,抽空學了很多,每個方面的知識我都會另起一篇博客去記...
    Yanci516閱讀 12,271評論 6 19
  • 前言 本篇文章基本是從常用排序算法總結(一)快速排序引申而來,其中大部分代碼和描述都來自這兩篇文章。 時間復雜度 ...
    王三的貓阿德閱讀 1,122評論 0 1
  • 頁眉 正文內容 頁腳 顏色代碼 000000:紅紅綠綠藍藍 ff代表全色 ff0000:代表全紅 f 代表16進制...
    爆米花0104閱讀 334評論 0 0
  • 你有想過自己未來會是什么樣子嗎?說真的,我對這個真的沒有認真想過,所以我會時常感到焦慮! 雖然現在的每一天都很努力...
    正媽咪閱讀 205評論 0 0
  • 感情面前莫論情商 向來放肆 何必抑制 知我並不是大慈善家 我也有過初吻收過鮮花 然卻偏偏愛上那個他 那時的決定 那...
    南宮雨琦閱讀 257評論 0 0