復習2-歸并排序

歸并排序屬于分而治之的思想,對數組一分為二,分別對兩部分排序,再做合并。有幾個關鍵點:

1. 一分為二后,每部分做遞歸的歸并排充,直到遇到一個元素為止。

2. 合并時一定是將兩個排好序的子數組做合并,類似于插入排序。

算法實現如下:

函數主體
合并函數

這里面有兩個問題:merge 插入排序時需要 make 一個輔助slice, 并做數據拷貝,對于大數組會 make 很多次,對GC有一定壓力。插入排序時一定要處理好子數組邊界問題。

20160706再好好想想能不能更高效? 特別是輔助slice,看能不能去掉。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,271評論 0 2
  • 概述 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部...
    蟻前閱讀 5,215評論 0 52
  • 概述:排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,742評論 0 15
  • 一. 寫在前面 要學習算法,“排序”是一個回避不了的重要話題,在分析完并查集算法和常用數據結構之后,今天我們終于可...
    Leesper閱讀 2,548評論 0 40
  • 我總是不停地站在人生的十字路口 選擇,選擇…… 選擇完一次,又要面臨下一次 這一次次的內心 與現實的斗爭 多少個失...
    艾任閱讀 159評論 0 1