0
我有近排序数组〜1000个对象,如{val: N}
并通过区分它们内置Array.prototype.sort
:对象插入排序阵列
arr.sort(function(a, b) { return a.val - b.val });
我已经绊倒http://jsperf.com/javascript-sort/16并试图用插入排序:
for (i = 1; i < arr.length; i++) {
var tmp = arr[i],
j = i;
while (arr[j-1].val > tmp.val) {
arr[j] = arr[j-1];
--j;
}
arr[j] = tmp;
}
但它总是会抛出一个错误:TypeError: Cannot read property 'kills' of undefined
。
哪里挖?
在此先感谢。
笑! http://jsperf.com/javascript-sort/16中的性能数字是针对一个有序数组的,为此,该算法(不出所料)花费了线性时间,而不是众所周知的O(N^2)性能...... – tucuxi