| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Java programmering >> Content
    Sådan bruges en Heapsort i Java
    Den heapsort algoritme er en af ​​de hurtigste sortering algoritmer til rådighed. Programmører bruger heapsort i Java , fordi det er et godt valg til meget store arrays , de kender til at være i en usorteret tilstand. For effektivitetens skyld , er et virkeligt træstruktur ikke anvendes . I stedet bliver træet dannet på plads , lige i array. Den heapsort algoritme er et " på plads " algoritme , da det kræver ingen ekstra hukommelse til at udføre den slags . Instruktioner
    1

    Komponer swap metoden. Dette vil bytte to elementer i et array "" public static void swap ( int [ ] a, int i , int j ) { int tmp = a [j ] . A [ j] = a [i ], en [i] = tmp ;} ""
    2

    Skriv kernen i den algoritme , at siftDown metoden. Det bruges til både form den bunke struktur og gøre det egentlige slags.
    3

    Sigt store værdier mod roden af træet og små værdier mod bladene med siftDown metoden. Da denne metode kaldes flere gange i løbet af sorteringen proces er den største knudepunkt konsekvent sigtet til rodknuden og flyttes til enden af matrixen. Enhver node n har op til to børn, hvis indekser er n * 2 + 1 og n * 2 + 2 . "" public static void siftDown ( int [ ] a , int start, int ende) { int root = start , mens (root * 2 + 1 int barn = rod * 2 + 1 //Hvis barnet har en søskende , og barns værdi er mindre end sin bror og søster , hvis ( barn barn + + ;} if ( a [root ] swap (a, rod, barn ), root = barn, } else {return ;} }} ""
    4 < p > Brug heapify metoden . Denne metode kaldes ved begyndelsen af den slags til at skabe den første bunke struktur . Dette gøres hurtigt , da bunke struktur er noget vag . det eneste krav er, at hver rodnode skal være større end den barn noder "" public static void heapify ( int [ ] a ) { for (int start = a.length /2 - 1 , start> = 0; start - ) . siftDown (a, start, a.length -1 );} ""
    5

    Skriv heapSort metoden metoden først heapifies array til at forberede den slags den siftDown metoden kaldes da igen, da roden node er nu en lille værdi Dette . . . sorterer en ny stor værdi til rodknuden , og hele processen gentages , indtil størrelsen af bunken er en "" public static void heapSort ( int [ ] a ) { heapify ( a). for (int ende = en . længde - 1 , end > 1 , ultimo - ) { swap (a, ende , 0) ; siftDown (a, 0, ultimo - 1) ;}} ""
    6

    Test . den heapSort metoden følgende eksempel viser et lille testprogram "" public static void main ( String [] args ) { int [ ] a = new int [10] . for (int i = 0; i for ( int i = 0 , jeg swap (a, i, i + ( int) ( Math.random () * ( 9 - i)) ), System.out.println ( "Før sortering :"); for (int i = 0; jeg heapSort ( a) System.out.println ( "Efter sortering ") for (int i = 0; i} ""

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Konverter en Int til en JTextField i Java 
    ·Hvordan man laver en Chat Server i Java 
    ·Java Recursion Tutorial 
    ·Sådan Beregn en Profit i Java 
    ·Hvordan at vide, om din server har JavaMail 
    ·Hvordan kan jeg Generer en Java-kode Fra UML2 Eclipse P…
    ·Flash Vs . Java Applet 
    ·Sådan udskriver Udsagn Brug Java 
    ·Sådan får du den Maven Pom Version i foråret 
    ·Java projekter med kodning 
      Anbefalede Artikler
    ·Sådan oprettes et træ menu med PHP & MySQL 
    ·Sådan bruges Decimaler i Visual Basic 
    ·Sådan fjernes cookies ved hjælp PHP 
    ·Sådan bruges variabler i en Access VBA Query 
    ·Hvordan man laver en Label Display Værdi af Scroll Bar…
    ·Sådan at efterlade kommentarer i Java -kode 
    ·Hvad Er VBA Stand til 
    ·Sådan Debug Ubuntu 
    ·Hvordan man laver et mønster af stjerner i Java 
    ·Sådan ansøger en Array i BorderLayout 
    Copyright © Computer Viden http://www.computerdk.com