基于索引对等长数组的数组列表进行排序

时间:2013-09-04 07:58:32

标签: javascript

我正在尝试使用下面的代码

对大型数组的数组列表进行排序
function _stInd(arr, ind){
  return arr.sort(function(a, b) {
    var _1 = a[ind];
    var _2 = b[ind];
    return (_1 < _2) ? -1 : (_1 > _2) ? 1 : 0;
  });
}

请查看此bin以获取更多信息http://jsbin.com/UqEPOfa/3/edit

代码工作正常,它也可以排序。但问题是,如果我尝试根据一个索引对100多万个数组列表进行排序,那就太费了。

请建议我改进此代码

1 个答案:

答案 0 :(得分:1)

我建议你做两件具体的事情:

  1. 考虑您需要排序的数据集,这通常有助于更快地进行排序。 (如评论中所述,如果其有限范围进行计数排序)

  2. 开始使用多线程(实际上称为工作线程)。是JAVASCRIPT DOEST现在支持。所以进行合并排序并开始部分显示结果。有关如何使用多线程的更多详细信息,请参阅工作线程。我能想到的一个很好的教程是http://ejohn.org/blog/web-workers/