看动画学算法之:排序-归并排序
生活随笔
收集整理的這篇文章主要介紹了
看动画学算法之:排序-归并排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 簡介
- 歸并排序的例子
- 歸并排序算法思想
- 歸并排序的java實現
- 歸并排序的時間復雜度
簡介
歸并排序簡稱Merge sort是一種遞歸思想的排序算法。這個算法的思路就是將要排序的數組分成很多小的部分,直到這些小的部分都是已排序的數組為止(只有一個元素的數組)。
然后將這些排序過的數組兩兩合并起來,組成一個更大一點的數組。接著將這些大一點的合并過的數組再繼續合并,直到排序完整個數組為止。
歸并排序的例子
假如我們有一個數組:29,10,14,37,20,25,44,15,怎么對它進行歸并排序呢?
先看一個動畫:
我們來詳細分析一下上面例子的運行過程:
首先將數組分為兩部分,[29,10,14,37]和[20,25,44,15]。
[29,10,14,37]又分成兩部分[29,10]和[14,37]。
[29,10]又被分成兩部分[29]和[10],然后對[29]和[10]進行歸并排序生成[10,29]。
同樣的對[14,37]進行歸并排序得到[14,37]。
將[10,29]和[14,37]再次進行歸并排序得到[10,14,29,37],以此類推,得到最后的結果。
總結
以上是生活随笔為你收集整理的看动画学算法之:排序-归并排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看动画学算法之:排序-选择排序
- 下一篇: JVM系列之:详解java object