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
    Slik bruker du en Heapsort i Java
    The heapsort algoritme er en av de raskest sortering algoritmer tilgjengelig. Programmerere bruke heapsort i Java fordi det er et godt valg for svært store matriser de vet å være i en usortert tilstand. For effektivitet skyld, er en faktisk trestruktur ikke brukt. I stedet er det dannet tre bestemte plasser, i matrisen . Den heapsort algoritmen er en " på plass " algoritmen , da det krever ingen ekstra minne til å utføre den slags . Instruksjoner
    en

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

    Skriv kjernen i algoritmen , den siftDown metoden. Den brukes til både form haugen struktur og gjøre selve sorteringen.
    3

    sile store verdier mot roten av treet og små verdier mot bladene med siftDown metoden. Ettersom denne metode kalles flere ganger i løpet av sorteringsprosessen , er den største noden gjennomgående siktet til rotnoden og flyttet til enden av rekken . Enhver node n har opp til to barn , hvis indeksene er n * 2 + 1 og n * 2 + 2 . " " public static void siftDown ( int [ ] a, int start , int end) { int root = start , mens ( root * 2 + 1 int barn = root * 2 + 1; //Dersom barnet har søsken og barns verdien er mindre enn sine søsken if ( barn barn + +; } if (a [ root] swap ( a, rot , barn) ; root = barn ; } else {return ;} } } " "
    4 < p> Bruk heapify metoden. Denne metoden kalles opp ved begynnelsen av den typen for å lage den første haugen struktur . Dette gjøres raskt , ettersom haugen strukturen er noe uklar . det eneste krav er at hver rotnode må være større enn den underordnede noder " " public static void heapify ( int [ ] a) { for ( int start = a.length /2 - 1; start > = 0; start - ) . siftDown (a, start, a.length - en ) ; } " "
    5

    Skriv heapSort metoden metoden første heapifies matrisen for å forberede den slags The siftDown metoden kalles da igjen siden rotnoden er nå en liten verdi This. . . sifts en ny stor verdi til rotnoden , og hele prosessen gjentas til størrelsen på haugen er en " " public static void heapSort ( int [ ] a) { heapify ( a) ; . for ( int end = en . lengde - 1; end > 1; end - ) { swap (a, end, 0 ) ; siftDown (a, 0 , end - 1 ) ;} } " "
    6

    Test . det heapSort metoden følgende eksempel viser en liten test -programmet " " 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 ( " etter sortering "); for ( int i = 0; i} " "

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan passere en sjekk Box verdi til en Servlet 
    ·Hva kan blokkere Java slik at den ikke virker 
    ·Slik kopierer Input Output Streams i Java 
    ·Slik importerer Java Console 
    ·Hva er en Java Widget 
    ·Hvordan ha brukerinndatatjenester desimaler i Java 
    ·Hvordan Les CLOBs i Java 
    ·Hvordan konvertere en streng i Java for å GeneralPath 
    ·Slik installerer Java 7 
    ·Slik leser du i heltall i Java og hoppe over White Spac…
      Anbefalte artikler
    ·Hvordan bruke Native japanske tegn i JSP 
    ·Hvordan laste ned en ny injektor 
    ·Hvordan finner jeg den Prime Number i Java 
    ·Hvordan lage Millions 
    ·Hvordan Les Serieporter Bruke Visual Basic 
    ·Hvordan bli kvitt Tall i COBOL 
    ·Hvordan beskytte Flash-filer lastes ned 
    ·Hvordan utvikle et Tetris spill i Java Uten en applet 
    ·Hvordan endre opp filstørrelse på PHP 
    ·Hvordan å programmere en Port Address 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/