归并排序JAVA实现(详解)
生活随笔
收集整理的這篇文章主要介紹了
归并排序JAVA实现(详解)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
歸并排序,顧名思義,就是遞歸和合并的過程.歸并排序的時(shí)間復(fù)雜度是O(nlogn)。該算法采用經(jīng)典的分治(divide-and-conquer)策略.(分治法將問題分(divide)成一些小的問題然后遞歸求解,而治(conquer)的階段則將分的階段得到的各答案"修補(bǔ)"在一起,即分而治之)
下面通過圖文的方式來對(duì)歸并進(jìn)行詳解:
分階段比較好理解,將整個(gè)長(zhǎng)度的數(shù)組進(jìn)行遞歸,使得得到的每一個(gè)數(shù)組都是有序的.
再來看看治階段,我們需要將兩個(gè)已經(jīng)有序的子序列合并成一個(gè)有序序列,比如上圖中的最后一次合并,要將[4,5,7,8]和[1,2,3,6]兩個(gè)已經(jīng)有序的子序列,合并為最終序列[1,2,3,4,5,6,7,8],來看下實(shí)現(xiàn)步驟。
總結(jié)
以上是生活随笔為你收集整理的归并排序JAVA实现(详解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mfc嵌入matlab绘图窗口,将mat
- 下一篇: 《硝烟中的Scrum和XP》书摘(1)