Documente Academic
Documente Profesional
Documente Cultură
Ordenar un array es muy importante, ya sea de números o de cadenas, puede haber casos en
que nos interese que los datos esten ordenados en un array. Tenemos varias formas de
hacerlo, tanto con números como con cadenas:
•Intercambio: consiste en comparar el primer valor con el resto de las posiciones posteriores,
cambiando el valor de las posiciones en caso de que el segundo sea menor que el primero
comparado, después la segunda posición con el resto de posiciones posteriores. Te
enseñamos un ejemplo de como funciona.
También os dejo un enlace donde lo explica más gráfcamente, pincha aquí para verlo.
•Quicksort con números:
public static void quicksort (int lista1[], int izq, int der)
1{
2 int i=izq;
3 int j=der;
4 int pivote=lista1[(i+j)/2];
5 do {
6 while (lista1[i]<pivote){
7 i++;
8 }
9 while (lista1[j]>pivote){
10 j--;
11 }
12 if (i<=j){
13
int aux=lista1[i];
14
lista1[i]=lista1[j];
15
lista1[j]=aux;
16
17 i++;
18 j--;
19 }
20 }while(i<=j);
21 if (izq<j){
22 quicksort(lista1, izq, j);
23 }
24 if (i<der){
25 quicksort(lista1, i, der);
26 }
}
•Quicksort con cadenas:
public static void quicksortP (String lista1[], int izq, int der){
1 int i=izq;
2 int j=der;
3
int pivote=(i+j)/2;
4
do {
5
while (lista1[i].compareToIgnoreCase(lista1[pivote])<0){
6
7 i++;
8 }
9 while (lista1[j].compareToIgnoreCase(lista1[pivote])>0){
10 j--;
11 }
12 if (i<=j){
13 String aux=lista1[i];
14 lista1[i]=lista1[j];
15 lista1[j]=aux;
16 i++;
17 j--;
18 }
19 }while(i<=j);
20 if (izq<j){
21 quicksortP(lista1, izq, j);
22 }
23
if (i<der){
24
quicksortP(lista1, i, der);
25
}
26
}
Veamos un ejemplo completo:
public class QuicksortApp {