Advertisement
Guest User

Quicksort

a guest
Apr 5th, 2011
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. var m, M, p, n, t;
  2. m = argument0;
  3. M = argument1;
  4.  
  5. if m >= M
  6. {
  7. return 0;
  8. }
  9. if (m+1 == M)
  10. {
  11. if array[m] > array[M]
  12. {
  13. t = array[m];
  14. array[m] = array[M];
  15. array[M] = t;
  16. }
  17. return 0;
  18. }
  19.  
  20. n = (m+M) div 2;
  21. p = array[n];
  22. array[n] = array[M];
  23. array[M] = p;
  24.  
  25. repeat M-m
  26. {
  27. if (array[m] > p) break;
  28. m += 1;
  29. }
  30. repeat M-m
  31. {
  32. if (array[M] < p) break;
  33. M -= 1;
  34. }
  35.  
  36. while (m < M)
  37. {
  38. t = array[m];
  39. array[m] = array[M];
  40. array[M] = t;
  41. repeat M-m
  42. {
  43. if (array[m] > p) break;
  44. m += 1;
  45. }
  46. repeat M-m
  47. {
  48. if (array[M] < p) break;
  49. M -= 1;
  50. }
  51. }
  52.  
  53. array[argument1] = array[m];
  54. array[m] = p;
  55.  
  56. quicksort(argument0, m-1);
  57. quicksort(m+1, argument1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement