歸并排序


歸并排序,是創(chuàng)建在歸并操作上的一種有效的排序算法。算法是采用分治法(Divide and Conquer)的一個(gè)非常典型的應(yīng)用,且各層分治遞歸可以同時(shí)進(jìn)行。歸并排序思路簡(jiǎn)單,速度僅次于快速排序,為穩(wěn)定排序算法,一般用于對(duì)總體無(wú)序,但是各子項(xiàng)相對(duì)有序的數(shù)列。
具體步驟,大致可分為2步:拆分與合并;

先將待排數(shù)組從中間位置一分為二,將拆分的兩部分在一分為二,以此拆分直到僅有一個(gè)元素時(shí),不可再分。拆完了,接著就是合并,我們需要將兩個(gè)已經(jīng)有序的子序列合并成一個(gè)有序序列,我們比較2個(gè)子序列的頭部,將小的(或大的)存入一個(gè)臨時(shí)的數(shù)組中,在移動(dòng)頭部的位置,知道兩個(gè)子序列的所有元素都放入臨時(shí)數(shù)組中,將合并的有序臨時(shí)數(shù)組的元素在覆蓋到原數(shù)組中,實(shí)現(xiàn)排序。

代碼如下:
標(biāo)簽:
歸并排序的評(píng)論 (共 條)
