| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Java Programming >> Content
    Merge Sort in codice Java
    Ordinamento di elenchi di dati presenta uno dei problemi più difficili per i programmatori di computer , perché è difficile da concettualizzare e implementare algoritmi di ordinamento efficienti nei linguaggi di programmazione . Ordinamento richiede notevoli copia, spostamento e la lettura di dati da lavorare . Di conseguenza , i programmatori si concentrano sullo sviluppo di algoritmi di ordinamento efficienti e generici . Uno di questi, il merge sort , funziona dividendo un elenco di valori più e più volte in modo ricorsivo di "divide et impera " il problema . Dal merge sort è inteso come una soluzione generica , la maggior parte delle lingue, tra cui Java , hanno modi per attuarla. Unisci Classe

    merge sort prende una lista da ordinare e divide ricorsivamente la lista fino a raggiungere i valori singoli , come i numeri singoli. Il tipo poi ricombina i numeri in modo ordinato , infine restituire un elenco ordinato . Una classe di ordinamento di base in Java conterrà un elenco di specie , e chiamare una funzione principale unire ordinamento definisce :
    classe

    Merge {

    public int [ ] x ;

    public static void main ( String [] args ) {

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

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

    }}
    merge sort funzione

    al di fuori della classe principale risiederà una funzione merge sort . Questi segmenti funzione una serie di numeri per ordinare nella lista. Inizialmente , questa gamma rappresenterà l'intera lista , ma come il merge sort continua , ci vorranno solo metà della lista fino a raggiungere le voci singole . Quindi , la funzione di ordinamento merge ricombinare gli elementi in elenchi di grandi dimensioni che sono ordinati (Fonte 2) :

    public void mergeSort ( int basso , int hi ) {

    se (basso < ciao ) { int media = ( basso + hi ) /2; mergeSort ( bassa, media ) ; mergeSort ( metà + 1 , hi ) ; merge ( bassa, media , alta );} }

    di base merge funzione

    La funzione di unione unirà due liste dopo di loro ordinamento . Se la funzione riceve singoli elementi , che ordinerà loro. In caso contrario , ci vorranno due liste separate , e in base al desiderio del loro in ordine crescente o decrescente per programmatore :

    private void merge ( int low, mid int, int hi ) {
    < p > int [ ] copia = new int [ x.length - 1 ] ;

    //Copia entrambe le parti nella matrice di supporto for (int i = basso ; i < = hi , i + + ) { copia [i ] = x [ i] ; }

    int i = basso ; int j = metà + 1 ; int k = basso ; while ( i < = metà && j < = hi ) {if (copia [ i] < = copia [ j ] ) { x [ k] = copia [ i] ; i + + ; } else { x [ k] = copia [ j ] ; j + + ; } k + + ; } //Copia il resto del lato sinistro della matrice nella matrice di destinazione ( i < = centro ), mentre { x [ k] = copia [ i] ; k + + ; i + + ; }


    }
    < br > Merge Sort Recurse

    la funzione " mergeSort " divide ricorsivamente la lista . In primo luogo , si suddivide la lista originale a metà per ogni volta che si richiama sé stesso ricorsivamente . Quando la ricorsione raggiunge una sola cifra , la funzione quindi marcia indietro e comincia a ordinare la lista . Ogni volta che la funzione marcia indietro a una precedente chiamata di funzione , si fonde due metà di una lista più piccola , alla fine di lavoro torna alla lista completa . La funzione " Merge" sembra fare il lavoro pesante organizzando e copiando i valori nella lista , ma il cuore di un merge sort è in funzione apparentemente semplice " mergeSort " .
    < Br >

    Previous :

    next :
      Articoli Correlati
    ·Come scaricare file di origine Java Applet con il codic…
    ·Come eseguire una specifica azione quando la chiave RET…
    ·Base Java Codici 
    ·Come dividere Dimensione fissa con Java 
    ·Come fare ordine simmetrico in albero binario in Java 
    ·Come modificare l'interlinea in NetBeans 
    ·Come aggiornare gli elementi in una lista con Java 
    ·Svantaggio di Struts 
    ·Che cosa è un evento in Java 
    ·Come costruire un Applet Con Eclipse 
      Articoli in evidenza
    ·Come riportare le funzioni di addizione per più numeri…
    ·Come eseguire un aggiornamento di MySQL Query 
    ·Come rimuovere i cookie utilizzando PHP 
    ·Chi PHP File Upload Funzione 
    ·Come fare riferimento a una stringa di connessione in A…
    ·Perl tutorial per la stampa HTML & Inline Frames HTML 
    ·Come inserire PHP Into WordPress 
    ·Come fare parte Int. di C + + String 
    ·Come ottenere immagini Altezza e larghezza in PHP 
    ·Come utilizzare il Picture Control utilizzando Visual B…
    Copyright © Conoscenza Informatica http://it.wingwit.com