Guest User

Untitled

a guest
Feb 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #!js
  2.  
  3. Object.prototype.p = function () {
  4. print(uneval(this));
  5. return this;
  6. };
  7.  
  8. function merge (a, b) {
  9. var ret = new Array(a.length + b.length);
  10. a = a.concat(Infinity); // clone the array and append sentry
  11. b = b.concat(Infinity);
  12. for (var i = 0, len = ret.length; i < len; i++) {
  13. ret[i] = (a[0] < b[0]) ? a.shift() : b.shift();
  14. }
  15. return ret;
  16. }
  17.  
  18.  
  19. //function merge_sort (list) {
  20. // var a = list.slice(0, list.length / 2);
  21. // var b = list.slice(list.length / 2);
  22. // ({a:a, b:b}).p();
  23. // if (list.length > 2) {
  24. // return merge(merge_sort(a), merge_sort(b))
  25. // } else {
  26. // return merge(a, b);
  27. // }
  28. //}
  29.  
  30. function merge_sort (list, begin, end) {
  31. [begin, end, list.slice(begin, end + 1)].p();
  32.  
  33. if (end - begin > 0) {
  34. var middle = Math.floor((begin + end + 1) / 2);
  35. return merge(merge_sort(list, begin, middle - 1), merge_sort(list, middle, end))
  36. } else {
  37. return [ list[begin] ];
  38. }
  39. }
  40.  
  41. var list = [1, 7, 9, 4, 3, 2, 6, 5, 8];
  42.  
  43. merge_sort(list, 0, list.length - 1).p();
Add Comment
Please, Sign In to add comment