Buenos días, tengo el siguiente código:
Código Java:
Ver originalpublic class QuickSort {
void ordenaQuickSort(int lista[], int inf, int sup){
int izq, der;
int eMedio, temp;
izq=inf;
der=sup;
//selecciona el elemento situado en el centro del array
eMedio=lista[(izq+der)/2];
//situa los menores del elemento del medio a la izquierda y los mayores a la derecha
do{
//avanza por la izquierda hasta encontrar un elemento mayor que el patrón o llegue al superior
while(lista[izq]<eMedio && izq<sup)
izq++;
//avanza por la derecha hasta encontrar un elemento menor al patrón o llegue al inferior
while(lista[der]>eMedio && der>inf)
der--;
//permuta el elemento de la izquierda por el de la derecha
if(izq<=der){
temp=lista[izq];
lista[izq]=lista[der];
lista[der]=temp;
izq++;
der--;
}
}while(izq<=der);
/* si hay elementos en el conjunto inferior se llama a ordenaQuickSort
con los límites inf y donde queda el elemento patrón*/
if(der>inf) ordenaQuickSort(lista, inf, der);
/* si hay elementos en el conjunto superior se llama a ordenaQuickSort
con los límites desde la izquierda hasta el sup*/
if(izq<sup) ordenaQuickSort(lista, izq, sup);
}
public static void main
(String args
[]){ int a[]={13, 6, 4, 14, 3, 12, 11, 7, 15, 9, 16, 27, 47, 93, 3, 4, 5, 2};
QuickSort sortObj=new QuickSort();
System.
out.
println("Conjunto sin ordenar:"); for(int i:a)
sortObj.ordenaQuickSort(a, 0, a.length-1);
System.
out.
println("\nConjunto ordenado:"); for(int i:a)
}
}
Y mi problema viene en que no entiendo como el vector sabe que int inf e int sup son el principio y el final del array. ¿A caso en la línea
"void ordenaQuickSort(int lista[], int inf, int sup)" el array toma el primer int como el inicio del array y el segundo int como el final de manera automática?
No se si he planteado muy bien la duda, pero es un poco compleja de explicar, espero que podaís resolvermela.
Gracias por vuestro tiempo.
PD: He tenido que crear el post usando IE, en el chrome no me funcionaban los botones de formato de texto y tipo de código, ¿le ha pasado a alguien mas?, siempre habia posteado desde chrome.