我想我快要解决这个问题了,但我不确定为什么我的代码没有正确执行。有人可以为我提供一些反馈并告诉我哪里搞砸了吗?
var insert = function(array, rightIndex, value) {
for(var j = rightIndex;
j >= 0 && array[j] > value;
j--) {
array[j + 1] = array[j];
}
array[j + 1] = value;
};
var insertionSort = function(array) {
for(var i = 1; i < array.length; i++){
insert(array, array.length -1, i);
}
};
var array = [22, 11, 99, 88, 9, 7, 42];
insertionSort(array);
println("Array after sorting: " + array);
//Program.assertEqual(array, [7, 9, 11, 22, 42, 88, 99]);
如果我这样做 insert(array, array[i], i);
,我得到以下输出:
排序后的数组:22,11,12,100,89,10,8,43,5,,4,,1,,
最佳答案
I got here another solution for this insertion sort:
var insert = function(array, rightIndex, value) {
for(var j = rightIndex; j >= 0 && array[j] > value; j--) {
array[j + 1] = array[j];
}
array[j + 1] = value;
};
var insertionSort = function(array) {
for(var i = 0; i < array.length-1; i++){
insert(array, i, array[i+1]);
}
};
var array = [22, 11, 99, 88, 9, 7, 42];
insertionSort(array);
关于javascript - javascript 中的插入排序帮助 -- 可汗学院,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713386/