插入排序功能不起作用,錯誤是:函數運行時間太長。也許你的代碼有錯誤?爲什麼我的代碼無法運行?插入排序
// this function
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 ; i++)
{
insert(array,i,array[i+1]);
}
};
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]);
可能是值得解釋爲什麼這種變化是必要的。由於沒有人會從這個答案中學習 – Deckerz
通過'array [i + 1]'我們不能確定是否存在'i + 1'元素 –
問題是設置了插入函數insertSort而不是插入, 雖然在執行完這個更改錯誤保持不變 –