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

Вниз

Что лучше?   Найти похожие ветки 

 
DesWind   (2008-07-04 04:07) [0]

Кольцевой буфер или очередь реализуемая через Move?


 
Zeqfreed ©   (2008-07-04 04:11) [1]

Лучше чем что?


 
DesWind   (2008-07-04 04:19) [2]

Что быстрее и при каком размере. Точнее что целесообразнее использовать: копирование памяти или указатель на элемент в массиве. Например если нужно перемножать два массива, один постоянный массив чисел другой буфер (кольцевой или очередь).


 
Zeqfreed ©   (2008-07-04 04:29) [3]

Что такое перемножение массивов? Не вижу как во время этой операции изменяется количество элементов массива и следовательно как в таком случае выбор реализации повлияет на производительность.


 
DesWind   (2008-07-04 04:37) [4]

Один из массивов - поток, задача - фильтрация.


 
Zeqfreed ©   (2008-07-04 04:44) [5]

До тех пор пока вы, многоуважаемый автор, будете играть в загадки, мы вам помочь не сможем :)

Что значит массив — поток? Как связаны фильтрация и умножение?

Вообще, если данные в массив добавляются поэлементно, то я бы выбрал кольцевой буфер. А если они поступают большими блоками, то целесообразно, пожалуй, использовать перемещение кусков массива.


 
DesWind   (2008-07-04 04:55) [6]

В загадки не играл - наверно уже сплю.
Поэлементно добавляются, но я не могу придумать нормальной реализации. Как подумаю что надо перепрыгивать из конца в начало - дрожь берет. А фильтр, вообще-то, и есть чего-то там "линейная комбинация".


 
Zeqfreed ©   (2008-07-04 04:56) [7]

> DesWind   (04.07.08 04:55) [6]

> перепрыгивать из конца в начало

Это и есть вся реализация :)


 
DesWind   (2008-07-04 05:08) [8]

Понатыкать if-ов не наш путь )))) Да просто хочется одной командой, вот и ищу себе оправдание.


 
Zeqfreed ©   (2008-07-04 05:14) [9]

> DesWind   (04.07.08 05:08) [8]

Один иф. В чем проблема?

метод КольцевойБуфер.добавитьЭлемент(Элемент : ТЭлементКольцевогоБуфера);
начать
   если Курсор.Позиция >= Вместимость тогда
       Курсор.Позиция := 0;

   Буфер[Курсор.Позиция] := Элемент;
   Инкрементировать(Курсор.Позиция);
кончить


 
Наиль ©   (2008-07-04 09:30) [10]

Нахождение следующего индекса в круговом буфере
Index:=(Index-MinIndex+1) mod (MaxIndex-MinIndex+1)+MinIndex;



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
2-1216192427
Alexey
2008-07-16 11:13
2008.08.24
TImage сделать черно-белым


2-1216590932
timekiller
2008-07-21 01:55
2008.08.24
Как выделить строку в TMemo?


2-1216323522
Vikindos
2008-07-17 23:38
2008.08.24
Поиск фрагментов в тексте и замена


2-1216278320
PPP
2008-07-17 11:05
2008.08.24
что такое {$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-


2-1216727543
aam
2008-07-22 15:52
2008.08.24
DDP файлы