Advertisement
DevMakoto

QuickSort.v1

Nov 13th, 2015
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. --------Funcion Principal------
  2.  
  3. A = array[1...100]
  4. i = 0, j = 0, pivote = 0
  5. primero = 0, ultimo = 0
  6.  
  7. for i = 1 to 100
  8. input A[i]
  9. endfor
  10.  
  11. primero = 1
  12. ultimo = 100
  13. Do quicksort(A[], 1, 100)
  14.  
  15. for i = 1 to 100
  16. print A[i]
  17. endfor
  18. -------------------------------
  19.  
  20. ****************************************************************************
  21. modulo quicksort(A[], primero, ultimo)
  22. // definimos los índices y calculamos el pivote
  23. i = primero
  24. j = ultimo
  25. central = (i + j) / 2
  26. pivote = A[central]
  27.  
  28. // iteramos hasta que i no sea menor que j
  29. while (i < j)
  30. // iteramos mientras que el valor de A[i] sea menor que pivote
  31. while (A[i] < pivote)
  32. // Incrementamos el índice
  33. i = i + 1
  34. endwhile
  35. // iteramos mientras que el valor de A[j] sea mayor que pivote
  36. while (A[j] > pivote)
  37. // decrementamos el índice
  38. j = j - 1
  39. endwhile
  40. // si i es menor o igual que j significa que los índices se han cruzado
  41. if (i < = j)
  42. // creamos una variable temporal para guardar el valor de A[j]
  43. x = A[j]
  44. // intercambiamos los valores de A[j] y A[i]
  45. A[j] = A[i]
  46. A[i] = x
  47. // incrementamos y decrementamos i y j respectivamente
  48. i = i + 1
  49. j = j - 1
  50. endif
  51.  
  52. // si primero es menor que j mantenemos la recursividad
  53. if primero < j:
  54. quicksort(A[], primero, j)
  55. endif
  56. // si ultimo es mayor que i mantenemos la recursividad
  57. if ultimo > i:
  58. quicksort(A[], i, ultimo)
  59. endif
  60. ********************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement