Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.04.14;
Скачать: CL | DM;

Вниз

оптимальна скорость доступа к массиву   Найти похожие ветки 

 
brother ©   (2012-12-18 10:34) [40]

пока остановился на вот таком варианте:

...
 TValue = array [0..DictValueLength - 1] of byte;

 TItem = record
   Value: TValue;
   Count: Int64;
   CRC32: cardinal;
 end;

 TItems = array of TItem;
...
 Dict: array [0..255] of TItems;
...
procedure TXXX.ItemAdd(Value: TValue);

 procedure _Add(id: byte; Value: TValue; crc: cardinal);
 begin
   SetLength(Dict[id], High(Dict[id])+2);
   Dict[id][High(Dict[id])].Value:= Value;
   Dict[id][High(Dict[id])].Count:= 0;
   Dict[id][High(Dict[id])].CRC32:= crc;
 end;

var
 n: int64;
 max: int64;
 crc: cardinal;
 id: byte;
begin
 id:= Value[0];
 max:= High(Dict[id]);
 crc:= GetCRC32(Value);

 if max > 0 then
 begin

   n:= 0;
   repeat
    // anee crc niaiaaa?o e ia eieeecey
    if (crc = Dict[id][n].CRC32) and
      (CompareMem(@Dict[id][n].Value, @Value, DictValueLength)) then
     begin
       Inc(Dict[id][n].Count);
       Exit;
     end;
     Inc(n);
   until n > Max;
   _Add(id, Value, crc);

 end
 else
   _Add(id, Value, crc);
end;
...

для тестов алгоритмов, скорость устраивает...



Страницы: 1 2 вся ветка

Текущий архив: 2013.04.14;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.011 c
2-1349091115
jacksotnik
2012-10-01 15:31
2013.04.14
Запретить получение фокуса


15-1355833435
Труп Васи Доброго
2012-12-18 16:23
2013.04.14
Колбасный шприц


15-1355815611
Lifeless77
2012-12-18 11:26
2013.04.14
Помогите решить 2 задачки на теорию вероятности,пожалуйста.


15-1355231463
boriskb
2012-12-11 17:11
2013.04.14
Российские школьники лидируют в изучении математики


15-1355701626
RGV
2012-12-17 03:47
2013.04.14
Посоветуйте как поступить