DataTables
DataTables Examples
JavaScript
(function() {
Array.prototype.msort = msort;
function msort(compare) {
var length = this.length,
middle = Math.floor(length / 2);
if (!compare) {
compare = function(left, right) {
if (left < right)
return -1;
if (left == right)
return 0;
else
return 1;
};
}
if (length < 2)
return this;
return merge(
this.slice(0, middle).msort(compare),
this.slice(middle, length).msort(compare),
compare
);
}
function merge(left, right, compare) {
var result = [];
while (left.length > 0 || right.length > 0) {
if (left.length > 0 && right.length > 0) {
if (compare(left[0], right[0]) <= 0) {
result.push(left[0]);
left = left.slice(1);
}
else {
result.push(right[0]);
right = right.slice(1);
}
}
else if (left.length > 0) {
result.push(left[0]);
left = left.slice(1);
}
else if (right.length > 0) {
result.push(right[0]);
right = right.slice(1);
}
}
return result;
}
})();
String.prototype.shuffle = function () {
var a = this.split(""),
n = a.length;
for(var i = n - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
return a.join("");
}
var int = [];
for (var i=0;i<50000;i++) {
int.push(Math.floor(Math.random()*1000));
}
var str = [];
for (var i=0;i<50000;i++) {
str.push("abcdefghijklmnopqrstuvxyz".shuffle());
}
console.time('int array.msort');
int.msort();
console.timeEnd('int array.msort');
console.time('int array.sort');
int.sort();
console.timeEnd('int array.sort');
console.time('int array.msort');
str.msort();
console.timeEnd('int array.msort');
console.time('int array.sort');
str.sort();
console.timeEnd('int array.sort');