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