Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Java Programming >> Content
Hoe maak je een HeapSort in Java Gebruik
De HeapSort algoritme is een van de snelst sorteeralgoritmes beschikbaar . Programmeurs gebruiken HeapSort in Java , want het is een goede keuze voor zeer grote arrays ze weten dat ze in een ongesorteerde staat . Omwille van efficiency , wordt een effectief boomstructuur niet gebruikt . In plaats daarvan wordt de boom gevormd in plaats , midden in de array . De HeapSort algoritme is een " in de plaats" algoritme , want het vereist geen extra geheugen om de soort te voeren . Instructies
1

Componeer de swap -methode . Dit zal ruilen twee elementen van een array " " public void swap ( int [ ] a , int i , int j ) { int tmp = a [ j ] ; . A [ j ] = a [ i ] , een [ i ] = tmp ;} " " kopen van 2

Schrijf de kern van het algoritme , de siftDown methode . Het wordt gebruikt om zowel de vorm van de heap structuur en doen het eigenlijke sorteren .
3

Zeef grote waarden in de richting van de wortel van de boom en kleine waarden in de richting van de bladeren met de siftDown methode . Als deze methode wordt meerdere keren tijdens het sorteerproces genoemd , wordt het grootste knooppunt consequent gezeefd om de wortel knooppunt en verplaatst naar het einde van de array . Elke knoop n heeft tot twee kinderen , van wie indexen zijn n * 2 + 1 en n * 2 + 2 . " " public void siftDown ( int [ ] a , int begin , int end ) { int root = starten , terwijl ( wortel * 2 + 1 int kind = wortel * 2 + 1 ; //Als het kind een broer of zus en de waarde van het kind is kleiner dan zijn grote broer als ( kind kind + + ; } if ( a [root ] swap ( a , wortel, kind) ; root = kind ; } else { return ; } } } " "
4

Gebruik heapify methode . Deze methode wordt bij het begin van de aard van de oorspronkelijke stapel structuur. kan snel gebeuren , omdat de heap structuur enigszins vaag . het enige vereiste is dat elk hoofdknooppunt groter dan moet kind nodes " " public void heapify ( int [ ] a ) { for ( int start = a.length /2 - 1 ; start > = 0 ; beginnen - ) . siftDown ( a , start , a.length - 1 ) ;} " "
5

Schrijf de HeapSort methode de methode eerste heapifies de array te bereiden op de sorteer de siftDown methode wordt dan weer genoemd omdat de wortel knoop is nu een kleine waarde Dit . . . zeeft een nieuwe grote waarde aan de wortel knooppunt , en het hele proces wordt herhaald totdat de grootte van de heap is een " " public void HeapSort ( int [ ] a ) { heapify ( a ) ; . for ( int einde = a . lengte - 1 ; end > 1 ; end - ) { swap ( een , einde , 0); siftDown ( a , 0 , end - 1 ) ; } } " "

Test 6 . de HeapSort methode het volgende voorbeeld toont een klein testprogramma " " 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 ( " Vóór sorteren : " ) ; for ( int i = 0 ; i HeapSort ( a ) ; System.out.println ( " Na het sorteren " ) ; for ( int i = 0 ; } i " "

Previous: Next:
  Java Programming
·Hoe de Character Class Gebruik…
·Hoe te Enum converteren naar s…
·Wat is een Constructor methode…
·Instructies voor de Chefmate W…
·Hoe kan ik een Diamond in Java…
·How to Get Waarde Van een code…
·Hoe maak je een relatief pad i…
·Hoe je tekst lettertypen wijzi…
·Hoe te Integers in Java 
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·? Hoe groot is een Byte 
·Hoe maak je een DataRelation toevoegen 
·Hoe je het aantal lijnen op een Java Rea…
·Hoe om te reageren webpagina's te bouwen…
·Hoe te Boolean Check in PHP 
·Hoe maak je een Input File in Ruby 
·Hoe te AutoCAD Script Maken Met Pauze in…
·Hoe de Matlab Jet Color Table Split naar…
·Hoe je ActiveX-besturingselementen Toega…
Copyright © Computer Kennis http://www.nldit.com