[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задержка в цикле
Гость_Lexx
Здравствуйте!
Помогите в решении следующей задачи: нужно реализовать процесс сортировки массива методом пузырька, но при этом чтобы был виден каждый шаг, как меняются элементы местами в массиве.
Т.е я полагаю что цикле нужно делать задержки, но как это реализовать в ЯваСкрипте - всю голову сломал((


function vSort(count, mass)
{
for (var i=0; i<count; i++)
{
for (var j=0; j<count-i+1; j++)
{
if (mass[j] > mass[j+1]) // Сам алгоритм сортировки методом "Пузырька"
{
temp = mass[j];
mass[j] = mass[j+1];
mass[j+1] = temp;
}
}
}
}

sergeiss
Для начала отказываешься от написанного тобой кода. Затем делаешь внутренние действия цикла в виде отдельной функции, которую вызываешь через setTimeout. Переменные цикла "ведёшь" в виде внешних переменных. Выставляешь нужную тебе задержку... И вперёд smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Гость_Lexx
Сергей, спасибо за совет!
Не получается его воплотить в жизнь...что не так?
P.S или внутренний цикл нужно тоже в отдельную функцию вынести? (Хотя пробовал - не заработало...)


function vSort(count, mass)
{
for (var i=0; i<count; i++)
{
for (var j=0; j<count-i+1; j++)
{
setTimeout(function()
{
tempElement(j,mass);
}, 1000);
}
}
}


function tempElement(j,mass)
{
if (mass[j] > mass[j+1]) // Сам алгоритм сортировки методом "Пузырька"
{
temp = mass[j];
mass[j] = mass[j+1];
mass[j+1] = temp;
}
print('printArray',mass);
}


function print(id, arr)
{
document.getElementById(id).innerHTML = arr.toString();
}
SerginhoLD
http://ir2.ru/setinterval.aspx

_____________
"internet explorer всех правильней отображает страницы" ©
Гость_Lexx
ДА! Она заработала))
SerginhoLD, огромное спасибо Вам за ссылку!

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.