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