Advertisement
Guest User

Untitled

a guest
May 4th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. var quickSort = (function(){
  2. var items;
  3.  
  4. var less = function(a, b) { return compare(items[a], items[b]) < 0; };
  5.  
  6. var sort = function(items, lo, high) {
  7. if(high <= lo) { return; }
  8. mid = partition(items, high, lo);
  9. sort(items, lo, mid-1);
  10. sort(items, mid+1, high);
  11. };
  12.  
  13. var exch = function(a, i, j) {
  14. var x = a[i];
  15. a[i] = a[j];
  16. a[j] = x;
  17. };
  18.  
  19. var compare = function(valA, valB) {
  20. if(valA > valB) { return 1; }
  21. if(valA === valB) { return 0; }
  22. if(valA < valB) { return -1; }
  23. };
  24.  
  25. var partition = function(items, high, lo) {
  26. var i = lo;
  27. var j = high + 1;
  28.  
  29. while(true) {
  30. while(less(++i, lo)) { if(i === high) { break; } }
  31. while(less(lo, --j)) { if(j === lo) { break; } }
  32. if(i >= j) { break; }
  33. exch(items, i, j);
  34. }
  35. exch(items, lo, j);
  36. return j;
  37. };
  38.  
  39. var shuffle = function(arr) {
  40. var len = arr.length;
  41. for(var i = len - 1; i > 0; i--) {
  42. var j = Math.round(Math.random() * i);
  43. var hole = arr[i];
  44. arr[i] = arr[j];
  45. arr[j] = hole;
  46. }
  47. return arr;
  48. };
  49.  
  50. return {
  51. sort: function(arr) {
  52. items = shuffle(arr);
  53. sort(items, 0, items.length-1);
  54. }
  55. };
  56. })();
  57.  
  58. var arr = ['j','a','k','b','e','h','f','d','i','c','g'];
  59. quickSort.sort(arr);
  60. console.log(arr);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement