Я пытаюсь написать анимацию пузырьковой сортировки - для этого я хочу поместить все итерации в отдельный массив и затем воспроизвести их. Но переменная array
ведет себя странно - все выходные данные console.dir(array)
являются отсортированными массивами, поэтому в pool
представляется 9 идентичных массивов [[1 ,2 ,3], [1, 2, 3] ... ]
Я ожидаю увидеть всю итерацию алгоритма сортировки: [[2, 3, 1], [2, 1, 3] ... ]]
Может кто-нибудь сказать мне, что я делаю неправильно, и самое главное, почему массив array
всегда сортируется?
Примечание : здесь работает фрагмент, но он не работает работает неправильно в браузере или jsfiddle
Фрагмент кода:
const pool = [];
const bubbleSort = (array) => {
const len = array.length;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len; j++) {
if (array[j] > array[j + 1]) {
const tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
pool.push(array);
console.dir(array);
}
}
}
bubbleSort([3, 2, 1]);
console.log(pool);