Programmierung

Quick Sort - Java


 
  1. Aufgabe

    Schnelles Sortieren durch Teilen und anschließendem  rekursivem Sortieren der Teile unabhängig voneinander.

    Für das Sortieren von N Elementen werden ungefähr N log N Operationen benötigt.

  2. Struktogramm

    Quick-Sort

  3. Quellcode

    /** Funktion:  Quick-Sort, Sortieren durch Teilen und Rekursion
         Applikation ohne Oberfläche, läuft in der Dos-Box: "java quick"
         @author  DG1XPZ
         @version JDK131
    */

    class quick {

      
    static int[ ] z={ 9,5,8,6,3,7,4,0,1,2 };  //Array "zahlen" deklarieren und befüllen

       public static void main( String[ ] vArgs ) {
           quick q = new quick ( );                 //Instanz von der Klasse "quick" erzeugen
           q.sort(z);                                        //Feld "z" sortieren
          
    System.out.println( q.toString )); //Feld "z" ausgeben
       }

      
    /** Funktion:  Sortieren eines Arrays nach der Quick-Sort-Methode
           @param array Das zu sortierende 1-Dimensionale Array
           @return           Rückgabe des sortierten Arrays
       */
       public int[ ] sort( int[ ] zahlen) {
           z = zahlen;
          
    qSort(
    0,z.length - 1); 
           return z//Rückgabe des sortierten Arrays
       }
    //public int[ ] sort(int[ ] z)

       /** Funktion:  Sortieren eines Arrays nach der Quick-Sort-Methode
           @param Start linke Grenze des zu sortierenden Teilbereichs
           @param Ende rechte Grenze des zu sortierenden Teilbereichs
       */
       private void qSort( int l, int r ) {
          if( r > l ) {
              int v = z [ r ];
              int i = l - 1;
              int j = r;
              int t = 0;

              do {
                 do {
                    i ++;
                 }
    while( z[ i ] < v );
     
                do {
                    j - - ;
                 }while( z[ j ] > v && j != 0 )
    ;
                 t = z [ i ];
                
    z [ i ] = z [ j ];
                
    z [ j ] = t ;
              }
    while( j > i )
    ;
              z [ j ] = z [ i ];
              z [ i ] = z [ r ];
             
    z [ r ] = t;
              qSort( l ,i - 1 ); 
              qSort( i + 1, r ); 
          }

       }//private void qSort( int l, int r ) 

       /** Funktion: Den Inhalt des 1-Dimensionalen Arrays zu einem String zusammenfügen
           @return           Der zusammengefügte String
       /*

       public
    String toString( ) {
           String
    s="";
           for ( int i=0; i<z.length; i++ ) {
              s=s+z[ i ]+", ";                          //sortierte Zahlen zum String hinzufügen + Komma
           }
           s=s+"\n" );                                   //Zeilenumbruch zum Schluss hinzufügen
          
    return s;                                      //Rückgabe des zusammengefügten Strings
       } //public String toString( )

    } //class
    quick


  4. Download quick.java

  5. Download quick.class

 

http://www.counter-service.de http://www.counter-service.de

Home
uebermich
Programmierung
Amateurfunk
Elektronik
Download
Links
E-Mail
Gästebuch/Meckerecke
Counter-DG1XPZ