Показать сообщение отдельно
  #4 (permalink)  
Старый 21.07.2017, 17:09
Новичок на форуме
Отправить личное сообщение для Ensei Посмотреть профиль Найти все сообщения от Ensei
 
Регистрация: 21.07.2017
Сообщений: 3

Сообщение от 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);
	}
}
Ответить с цитированием