|
Quick Sort - Java
|
- 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.
- Struktogramm
- 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
- Download quick.java
- Download quick.class
|
|
|