Programación utilizando métodos orientados a objetos JAVA
datos int[] privados;
clasificación rápida (datos int[]) {
this.data = datos
}
Public void QuickSort(){
recQuickSort(data, 0, data . length-1);
}
Private void recQuickSort(int[] data, int low, int high) {
//Establecer dos controles deslizantes
int low cursor = low+1;
p >int highCursor = high;
//Variable temporal durante el intercambio
int temp = 0;
//Compara los valores de perspectiva y Configúrelo en el primer valor de la matriz.
int medi = data[low];
while (true) {
//Busca desde el extremo inferior para determinar los datos [low] que son mayor que la ubicación del número.
mientras(cursor bajo & lt;alto& amp& ampdata[cursor bajo]& lt;medi) {
cursor bajo++;
}
//Busca desde el extremo superior para determinar la posición que es más pequeña que los datos [extremo inferior]. Utilice >= para determinar si es menor que este valor.
mientras(cursor alto & gt; bajo & amp& ampdata[cursor alto]& gt; = medi) {
cursor alto-;
} p>
p>
//Las posiciones de los dos cursores exceden el límite y salen del bucle.
if(cursor bajo & gt; = cursor alto) {
Break;
}
//Intercambiar datos [highCursor] y data[lowCursor] Datos de ubicación.
temp = datos[cursor alto];
datos[cursor alto]= datos[cursor bajo];
datos[cursor bajo]= temp;
}
//Según la condición de salida del bucle while: lowCursor > highCursor
//El lowCursor actual apunta a la primera posición a la derecha que es mayor than data[low];
// El cursor alto apunta a la primera posición a la izquierda que es menor que data[low], por lo que data[low] y data[low] deben intercambiarse.
//El valor de los datos [cursor alto]
Datos [bajo] = datos [cursor alto];
datos [cursor alto] = medi;
//Opere recursivamente la mitad izquierda.
if(low& lthighCursor) {
recQuickSort(datos, bit bajo, cursor de bit alto
}
//Recursivo); operación Mitad derecha.
if(cursor bajo & lt; alto){
recQuickSort(datos, cursor bajo, alto
}
}
//Imprimir matriz
Visualización de vacío público(){
for(int I = 0; i<data length; i++) {
sistema .print(datos[I]+" ");
}
sistema println(); >
//Genera una matriz que contiene números aleatorios de tamaños grandes y pequeños.
público estático int[]obtener datos(int tamaño){
int datos[]= nuevo int[tamaño];
for(int I = 0 ;i<data length; i++) {
data[I]=(int)(1+math . random()* 54); //Genera un número aleatorio 1-54, donde Math. genera un número del 0 al 1.
}
Datos devueltos;
}
//Prueba
Public static void main(String[ ] args) {
int datos[]= obtener datos(10);
QuickSort sort = nuevo QuickSort(datos);
sort.display() .
ordenar.clasificación rápida();
ordenar.display().
}
}