Advertisement
corp0

Untitled

Nov 22nd, 2021
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1. import java.util.Arrays;
  2. public class FastClasi {
  3.     private int arreglo_temp[];
  4.     private int longitud;
  5.     public void sort(int[] numeros) {
  6.         if (numeros == null || numeros.length == 0) {
  7.             return;
  8.         }
  9.         this.arreglo_temp = numeros;
  10.         longitud = numeros.length;
  11.         FastClasi(0, longitud - 1);
  12.     }
  13.     private void FastClasi(int indice_inferior, int indice_superior) {
  14.         int i = indice_inferior;
  15.         int j = indice_superior;
  16.         // determinar el numero pivote
  17.         int pivote = arreglo_temp[indice_inferior + (indice_superior - indice_inferior) / 2];
  18.         // Dividir en dos arreglos
  19.         while (i <= j) {
  20.             while (arreglo_temp[i] < pivote) {
  21.                 i++;
  22.             }
  23.             while (arreglo_temp[j] > pivote) {
  24.                 j--;
  25.             }
  26.             if (i <= j) {
  27.                 intercambiarNumeros(i, j);
  28.                 //avanzar el indice a la siguiente posicion en ambos lados
  29.                 i++;
  30.                 j--;
  31.             }
  32.         }
  33.         // llamar al metodo FastClasi() en forma recursiva
  34.         if (indice_inferior < j)
  35.             FastClasi(indice_inferior, j);
  36.         if (i < indice_superior)
  37.             FastClasi(i, indice_superior);
  38.     }
  39.     private void intercambiarNumeros(int i, int j) {
  40.         int temp = arreglo_temp[i];
  41.         arreglo_temp[i] = arreglo_temp[j];
  42.         arreglo_temp[j] = temp;
  43.     }
  44.     // Metodo para probar lo anterior
  45.     public static void main(String args[]) {
  46.         FastClasi ob = new FastClasi();
  47.         int numeros[] = {
  48.             7,
  49.             -5,
  50.             3,
  51.             2,
  52.             1,
  53.             0,
  54.             45
  55.         };
  56.         System.out.println("Arreglo original:");
  57.         System.out.println(Arrays.toString(numeros));
  58.         ob.sort(numeros);
  59.         System.out.println("Arreglo ordenado");
  60.         System.out.println(Arrays.toString(numeros));
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement