Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Java Programming >> Content
    Flett Sorter i Java-kode
    Sortering lister med data presenterer en av de mer utfordrende problemer for programmerere , fordi det er vanskelig å konseptualisere og implementere effektive sortering algoritmer i programmeringsspråk. Sortering krever betydelig kopiering , flytting og lesing av data å jobbe . Følgelig programmerere fokusere på å utvikle effektive og generisk sortering algoritmer . En av disse, flettingen sortere, fungerer ved å dele en liste med verdier over og over rekursivt til " splitt og hersk " problemet . Siden merge slags er ment som en generisk løsning , de fleste språk, inkludert Java , har måter å implementere det. Flett Class

    flette sortere tar en liste som skal sorteres og rekursivt deler listen til du kommer til enkeltverdier , for eksempel enkle tall . Den slags recombines da tallene i sortert rekkefølge , til slutt returnere en sortert liste . En grunnleggende sortering klasse i Java vil inneholde en liste til å sortere, og kaller en hoved fusjonere sortering funksjon den definerer : en

    klasse Merge {

    public int [ ] x ;

    public static void main ( String [] args ) {

    x = [ 5 , 6, 3 , 4, 7 , 8, 10 , 2 ];

    mergeSort ( x , 0 , x . lengde - 1 ) ;

    } }
    Merge Sorter funksjon

    Utenfor den viktigste klassen vil ligge et flettefelt slags funksjon . Denne funksjonen segmenter en rekke tall for å sortere i listen. I første omgang vil dette området representerer hele listen, men som flettingen slags fortsetter, vil det ta bare halvparten av listen inntil nå enkeltposter . Deretter vil flettingen slags funksjon rekombinerer elementene i store lister som er sortert (Kilde 2 ) : en

    public void mergeSort ( int lav , int hi ) {

    if ( lav < hi ) { int midten = (lav + hi ) /2; mergeSort ( lav, middels ) ; mergeSort ( midten + 1 , hi ), merge ( lav, middels , hi ); } }

    Basic Merge funksjon

    merge -funksjonen vil kombinere to lister etter å sortere dem . Hvis funksjonen mottar enkeltelementer , vil det bestille dem . Ellers vil det ta to separate lister , og avhengig av ønsket av programmerer for dem i stigende eller synkende rekkefølge :

    private void flette ( int lave , int mid , int hi ) {
    < p > int [ ] kopi = new int [ x.length - 1 ];

    //Kopier begge deler inn hjelperen array for ( int i = lav, i < = hi , i + + ) { kopi [i ] = x [ i] ;}

    int i = lav, int j = mid + 1; int k = lav , mens ( i < = midt && j < = hi ) {if ( kopi [ i] < = kopi [ j ] ) { x [ k] = kopi [ i] ; i + +; } else { x [ k] = kopi [ j ]; j + +; } k + +; } //kopier resten på venstre side av tabellen inn i målet rekke while ( i < = mid) { x [ k] = kopi [ i] ; k + +; i + +; }

    }

    Merge Sorter Recurse

    " mergeSort "-funksjonen deler rekursivt listen. Først deles det den opprinnelige listen i to for hver gang det kaller seg rekursivt . Når rekursjon når et enkelt siffer , Backtracks funksjonen da og begynner å bestille listen . Hver gang funksjonen Backtracks til en tidligere funksjon samtale , fusjonerer det to halvdeler av en mindre liste , til slutt jobbe tilbake til den fullstendige listen . "Slå sammen "-funksjonen ser ut til å gjøre de tunge løftene ved å arrangere og kopiering verdier i listen , men hjertet av en sammenslåing slag er i utrolig enkle " mergeSort "-funksjonen .


    früher :

     Weiter:
      Relatert Artike
    ·Slik reparerer Java: Lang Null Pointer Exception 
    ·Hvordan legge til JMenuBar til JPanel 
    ·Hvordan lage en CSV-fil i Java 
    ·Slik konverterer Oktal til Binary i Java 
    ·Hva er en Header i Java 
    ·Hvordan sette en SVN i Eclipse 
    ·Hvordan å se IP-adresser i Java Kanaler 
    ·Hvordan koble rammer ved hjelp av NetBeans 
    ·Hvordan Føy en streng til en annen streng i Struts 2 i…
    ·Hvordan dele opp Input -filer i Java 
      Anbefalte artikler
    ·Den Header PHP Is Not Omdirigering 
    ·PHP Koble fra Function 
    ·Hvordan bruke PHP SQLite 
    ·Hvordan lage Gemstone Soap 
    ·Slik Kombiner utforminger på Android 
    ·Hvordan lage en objektorientert Java spill 
    ·Hvordan lese en Tabulatordelt fil i Java 
    ·Hvordan lage en applet i NetBeans 
    ·Slik Finn Object Method IVX 
    ·Java BorderLayout Tutorial 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/