Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 zlúčiť druh sa zoznam mohol byť triedený a rekurzívne delí zoznamu až do dosiahnutia jednotlivých hodnôt , napríklad jednotlivých čísel . Triedenie potom recombines čísla v triedenom poriadku , nakoniec vracia zoradený zoznam . Základné triedenie triedy v Jave bude obsahovať zoznam zoradiť , a zavolajte hlavné zlúčenie klasifikácia funkcií je definuje : 
 
 triedy zlúčiť { 
 
 public int [ ] x ; 
 
 public static void main ( String [ ] args ) { 
 
 x = [ 5 , 6 , 3 , 4 , 7 , 8 , 10 , 2 ] ; 
 
 mergesort ( x , 0 , x . dĺžka - 1 ) ; 
 
 } } 
 Merge Sort funkcie 
 
 Mimo hlavnej triedy bude bývať funkcia merge sort . Táto funkcia segmenty rozsah čísel triediť do zoznamu . Spočiatku bude táto rada predstavuje celý zoznam , ale ako zlúčenie druh pokračovať , bude to trvať len polovicu zoznamu až do dosiahnutia jednotlivé položky . Potom bude funkcia merge sort zlučujú prvky do veľkých zoznamov , ktoré sú zoradené ( Zdroj 2 ) : 
 
 public void mergesort ( int nízka , int hi ) { 
 
 if ( low < hi ) { int stredná = ( low + hi ) /2 ; mergesort ( nízka , stredná ) , mergesort ( stredná + 1 , hi ) , zlúčiť ( nízka , stredná , hi ) ; } } 
 
 Základné Merge funkcie 
 
 funkcia merge spojí dva zoznamy po ich triedenie . Keď je funkcia prijíma jednotlivé prvky , bude to objednať . V opačnom prípade bude trvať dva oddelené zoznamy , a v závislosti na túžbe , aby im programátor vo vzostupnom alebo zostupnom poradí : 
 
 private void merge ( int nízka , int stredná , int hi ) { 
 
 int [ ] kopírovať = new int [ x.length - 1 ] ; 
 
 //kopírovať obe časti do pomocnej poľa for ( int i = nízka , i < = hi , i + + ) { COPY [ i ] = x [ i ] ; } 
 
 int i = nízke ; int j = stredná + 1 , int k = nízka ; while ( i < = stredná && j < = hi ) { if ( kópia [ i ] < = kopírovať [ j ] ) { x [ k ] = kopírovať [ i ] ; i + + ; } else { x [ k ] = kopírovať [ j ] ; j + + ; } k + + ; } //kopírovať zvyšok na ľavej strane poľa do cieľového poľa while ( i < = mid ) { x [ k ] = kopírovať [ i] ; k + + ; i + + ; } 
 
 } 
 
 Zlúčiť Zoradiť rekurzívne 
 
 funkcie " mergesort " rekurzívne delí na zoznam . Po prvé , to rozdeľuje pôvodný zoznam v polovici zakaždým , keď je rekurzívne volá sama seba . Keď rekurzia dosiahne jednu číslicu , funkcie a potom ustúpi a začne na zákazku zoznamu . Zakaždým , funkcie ustupujú do predchádzajúceho volanie funkcie , to sa spoja dve polovice menšie zoznam , nakoniec pracovať späť na úplný zoznam . " Zlúčiť " funkcie Zdá sa , že robiť ťažkú prácu tým , že usporiada a kopírovanie hodnôt do zoznamu , ale srdce zlúčenie druhu je v zdanlivo jednoduchou funkciou " mergesort " .