Advertisement
corp0

Untitled

Nov 22nd, 2021
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 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. {
  47. FastClasi ob = new FastClasi();
  48. int numeros[] = {7, -5, 3, 2, 1, 0, 45};
  49. System.out.println("Arreglo original:");
  50. System.out.println(Arrays.toString(numeros));
  51. ob.sort(numeros);
  52. System.out.println("Arreglo ordenado");
  53. System.out.println(Arrays.toString(numeros));
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement