Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!js
- Object.prototype.p = function () {
- print(uneval(this));
- return this;
- };
- function merge (a, b) {
- var ret = new Array(a.length + b.length);
- a = a.concat(Infinity); // clone the array and append sentry
- b = b.concat(Infinity);
- for (var i = 0, len = ret.length; i < len; i++) {
- ret[i] = (a[0] < b[0]) ? a.shift() : b.shift();
- }
- return ret;
- }
- //function merge_sort (list) {
- // var a = list.slice(0, list.length / 2);
- // var b = list.slice(list.length / 2);
- // ({a:a, b:b}).p();
- // if (list.length > 2) {
- // return merge(merge_sort(a), merge_sort(b))
- // } else {
- // return merge(a, b);
- // }
- //}
- function merge_sort (list, begin, end) {
- [begin, end, list.slice(begin, end + 1)].p();
- if (end - begin > 0) {
- var middle = Math.floor((begin + end + 1) / 2);
- return merge(merge_sort(list, begin, middle - 1), merge_sort(list, middle, end))
- } else {
- return [ list[begin] ];
- }
- }
- var list = [1, 7, 9, 4, 3, 2, 6, 5, 8];
- merge_sort(list, 0, list.length - 1).p();
Add Comment
Please, Sign In to add comment