| 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
    Come utilizzare un Heapsort in Java
    L'algoritmo heapsort è uno dei più veloci algoritmi di ordinamento disponibili . I programmatori usano heapsort in Java , perché è una buona scelta per grandi schiere che sanno di essere in uno stato indifferenziato. Per ragioni di efficienza , un albero effettivo non è utilizzato . Invece , l'albero è formato in posto , proprio nella matrice. L'algoritmo heapsort è " a posto " algoritmo , in quanto non richiede ulteriore memoria per eseguire l'ordinamento . Istruzioni
    1

    Compose il metodo swap. Ciò scambiare due elementi di un array " " public static di swap void ( int [] a , int i , int j ) { int tmp = a [ j ] ; . A [ j ] = a [i] , a [i] = tmp ; } " "
    2

    Scrivi il nucleo dell'algoritmo , il metodo siftDown . E 'utilizzato sia per forma la struttura heap e fare il tipo effettivo .
    3

    Setacciate valori di grandi dimensioni verso la radice dell'albero e piccoli valori verso le foglie con il metodo siftDown . Poiché questo metodo viene chiamato più volte durante il processo di sequenziazione , la più grande nodo è costantemente setacciata al nodo radice e spostato alla fine della matrice . Ogni nodo n ha fino a due bambini, i cui indici sono n * 2 + 1 e n * 2 + 2 . " " statica siftDown public void ( int [] a , int start , int end) { int root = inizio ; mentre (radice * 2 + 1 bambino int = radice * 2 + 1 ; //Se il bambino ha un fratello e la valore del bambino è inferiore a suo fratello se ( figlio bambino + +; } if ( uno swap [root ] (a, radice , bambino) ; root = bambino ; } else { return; } } } " "
    4 < p > Utilizzare il metodo heapify . Questo metodo viene chiamata all'inizio del genere per creare la struttura iniziale mucchio. Ciò è fatto rapidamente , poiché la struttura heap è alquanto vago . l' unico requisito è che ogni nodo radice deve essere maggiore della nodi figli " " public static void heapify ( int [ ] a) {for ( int start = a.length /2 - 1; inizio > = 0; iniziare - ) . siftDown (a, inizio, a.length - 1 );} " "
    5

    Scrivi il metodo heapsort il metodo heapifies prima l'array di prepararsi per l'ordinamento il metodo siftDown viene poi chiamato di nuovo in quanto il nodo principale è oggi un piccolo valore di questa . . . setaccia un nuovo grande valore per il nodo radice , e l'intero processo viene ripetuto fino a quando la dimensione dello heap è una " " public static void heapsort ( int [ ] a) { heapify ( a); . for (int fine = a . lunghezza - 1 ; end > 1; end - ) { swap ( a, fine , 0); siftDown (a, 0 , fine - 1 );} } " "
    6

    test . del metodo heapsort l'esempio seguente mostra un piccolo programma di test " " public static void main ( String [] args ) { int [ ] a = new int [10]; . for (int i = 0; i for (int i = 0 , i swap ( a, i, i + ( int ) ( Math.random ( ) * ( 9 - i) ) ) ; System.out.println (" Prima di ordinamento :"); for (int i = 0 ; i heapsort ( a); System.out.println ( " Dopo la cernita "); for (int i = 0; i} " "

    Previous :

    next :
      Articoli Correlati
    ·Come per rilevare pressione di un tasto in Java 
    ·I Vantaggi e svantaggi del metodo di overload in Java 
    ·Monoalfabetica cifrari a sostituzione nel codice Java 
    ·Come prevenire accessi simultanei a un metodo in Java 
    ·Come importare stringhe in Java 
    ·Come dichiarare un array di interi in Java 
    ·Come utilizzare il file delle proprietà in Struts 
    ·Come creare un emulatore Android 
    ·Come alternare Addizione e sottrazione in Java 
    ·Come modificare una dimensione heap Java in una console…
      Articoli in evidenza
    ·Come ottenere la certificazione MySQL 
    ·Come utilizzare PHP per inviare informazioni a un compu…
    ·Come Lasciare un Header PHP Anywhere 
    ·Pro & Contro di un'istruzione ReDim 
    ·Come incorporare EXE in Python 
    ·Tutorial Microsoft Visual Basic 
    ·Come creare un database MySQL Website 
    ·La differenza tra un Helios & Galileo Eclipse 
    ·Modalità di accesso OLE e ActiveX 
    ·Come avere Java Leggi Tasti di ingresso 
    Copyright © Conoscenza Informatica http://it.wingwit.com