Вверх ↑
Разработчик
Ответов: 26151
Рейтинг: 2127
#1: 2009-12-20 22:00:10 ЛС | профиль | цитата
Таак, проверил быстродействие на последних реализациях текущего кода и усовершенствованного кода от Леонида. Тут ошибочка вышла, действительно быстрее на пустом выводе

Вот такой код с массивом сравнивался


procedure THIRandom._work_doRandomWithoutRepeats;
var
i, j, rndidx, _max: integer;
IRnd: Array of integer;
begin
_max := Round(_prop_Max);
SetLength(IRnd, _max);
for i:= 0 to _max - 1 do
IRnd[i] := i;
for i:=0 to _max - 1 do
begin
j:= Round(Random *(_max - i) - 0.5 + i);
rndidx := IRnd[i];
IRnd[i] := IRnd[j];
FRnd := IRnd[j];
IRnd[j] := rndidx;
_hi_onEvent(_event_onRandom, Round(FRnd));
end;
SetLength(IRnd, 0);
end;
------------ Дoбавленo в 22.04:
Леонид писал(а):
думаю, что "всё в одном" непонятнее всегда

Ага, а засорять палитру компонентами из-за одного метода -- отличная идея

Кстати, Леонид, в твоем коде куча лишних телодвижений с округлением, которые там и в пень не упали. А у меня в коде посмотри, как реализуется динамический массив
------------ Дoбавленo в 22.32:
Внес исправления на SVN
карма: 22

0