标签:
javascript的Array.sort方法可以传一个函数作为排序标准,今天晚上是坐在阳台上发呆陪老婆,有一句没一句的聊,无聊就实现个sort玩。
代码如下:
Array.prototype.sort2 = function(callback){
var self = this;
for (var i = self.length-1; i >0; i--) {
for (var j = 0; j < i; j++) {
if (callback(self[j],self[j+1])) {
var t = self[j];
self[j]=self[j+1];
self[j+1] = t;
};
};
};
return self;
}
var a = [];
for (var i = 0; i < 10000; i++) {
a.push(Math.random());
};
var dt = new Date();
a.sort2(function(v1,v2){return v1>v2;});
console.info((new Date())-dt);
然后在下面的测试过程中,我交替运行sort2和sort,发现根本不是一个数量级的,大量数据的排序冒泡肯定不可行,改天再试试插排,看能不能缩短与内置的sort之间的差距。就怕这个sort是完全用js的解释语言写的,不是javascript写成的,那怎么也不能写成一样了……
标签:
原文地址:http://www.cnblogs.com/magma/p/4765221.html