Я думаю, что я нахожусь на грани решения этого вопроса, но я не уверен, почему мой код не выполняется правильно. Может ли кто-нибудь дать мне некоторые отзывы и показать мне, где я испортился?Вставка Сортировка справки в javascript - Khan Academy
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);
, я получаю следующий результат:
Array after sorting: 22,11,12,100,89,10,8,43,5,,4,,1,,
Что происходит, чего вы не хотите? – Anonymous
Есть ли причина, по которой вы повторно реализуете 'sort', когда вы можете просто выполнить' var array = [22, 11, 99, 88, 9, 7, 42] .sort (function (a, b) {return a> b;}); '? – vrmc
Да, причина в том, что я пытаюсь реализовать алгоритм для академических знаний. Мне хорошо известно, что я мог бы сделать это именно так для практических целей. Я хочу улучшить алгоритмы. – Chris