Тема: Задачка
Показать сообщение отдельно
Старый 28.06.2012, 18:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 17  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну вот я и говорю, что можно иначе. Т.е. не нужно пересчитывать все элементы, можно splice()'ить по нужному числу - т.как мы можем просчитать размер который нужно отрезать по формуле, вметсто того, чтобы считать по одному и ждать пока условие не выполнится

Т.е. в цикле вместо for (i = 0; i < length; i++) можно сделать
for (i = 0; i < length; i += stepSize())

где setpSize() = минимальная высота колонки + (если израсходован весь остаток от последнего ряда, то 0, иначе 1).

Для списков длиной в несколько миллионов, которые нужно разбить на 5-10 колонок выигрыш будет существенный
__________________
Hell is the possibility of sanity