Главная страница
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.046 c
6-1191913609
Motzart_Motzart
2007-10-09 11:06
2008.08.24
Модем


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


15-1215492465
homm
2008-07-08 08:47
2008.08.24
Интеграция .reg-файла в реестр


2-1216724523
Dimich1978
2008-07-22 15:02
2008.08.24
Замена, распечатка в Richedit


15-1215110556
oldman
2008-07-03 22:42
2008.08.24
Нужен контроллер EGA!