标签:
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