Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- public class FastClasi {
- private int arreglo_temp[];
- private int longitud;
- public void sort(int[] numeros) {
- if (numeros == null || numeros.length == 0) {
- return;
- }
- this.arreglo_temp = numeros;
- longitud = numeros.length;
- FastClasi(0, longitud - 1);
- }
- private void FastClasi(int indice_inferior, int indice_superior) {
- int i = indice_inferior;
- int j = indice_superior;
- // determinar el numero pivote
- int pivote = arreglo_temp[indice_inferior+(indice_superior-indice_inferior)/2];
- // Dividir en dos arreglos
- while (i <= j) {
- while (arreglo_temp[i] < pivote) {
- i++;
- }
- while (arreglo_temp[j] > pivote) {
- j--;
- }
- if (i <= j) {
- intercambiarNumeros(i, j);
- //avanzar el indice a la siguiente posicion en ambos lados
- i++;
- j--;
- }
- }
- // llamar al metodo FastClasi() en forma recursiva
- if (indice_inferior < j)
- FastClasi(indice_inferior, j);
- if (i < indice_superior)
- FastClasi(i, indice_superior);
- }
- private void intercambiarNumeros(int i, int j) {
- int temp = arreglo_temp[i];
- arreglo_temp[i] = arreglo_temp[j];
- arreglo_temp[j] = temp;
- }
- // Metodo para probar lo anterior
- public static void main(String args[])
- {
- FastClasi ob = new FastClasi();
- int numeros[] = {7, -5, 3, 2, 1, 0, 45};
- System.out.println("Arreglo original:");
- System.out.println(Arrays.toString(numeros));
- ob.sort(numeros);
- System.out.println("Arreglo ordenado");
- System.out.println(Arrays.toString(numeros));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement