Сообщение от Alexandroppolus
|
сначала сохранить копию массива, потом сделать сортировку, в которой записать все "ходы" (каждый ход - пара индексов), а потом уже показать анимацию - там надо будет разворачивать один for, по массиву ходов.
|
переписал функцию BubbleSort, но на выходе получаю n одинаковых массивов.
function BubbleSort(A) // A - массив, который нужно
{ // отсортировать по возрастанию.
var n = A.length;
Steps=[];
for (var i = 0; i < n-1; i++)
{ for (var j = 0; j < n-1-i; j++)
{ if (A[j+1] < A[j])
{var t = A[j+1]; A[j+1] = A[j]; A[j] = t;
Steps.push(A);
console.log('Меняем местами :'+A[j+1]+' и '+A[j]);}
}
}
return Steps; // На выходе сортированный по возрастанию массив A.
}
И добавил функцию для их поочерёдной отрисовки, но проблема осталась
function AnimalPaint(Steps){
N=Steps.length-1;
for (var i = 0; i < N; i++) {
setInterval(UpdatingPoint(Steps[i]),1000);
console.log('Step №'+i);
}
}