Главная страница
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.017 c
2-1216626771
Denis__
2008-07-21 11:52
2008.08.24
Что использовать вместо StringGrid?


15-1215265054
NaRuTo
2008-07-05 17:37
2008.08.24
IRC


1-1197322753
Евгений
2007-12-11 00:39
2008.08.24
Сделать недоступным столбец в DBGrid


1-1196965642
@!!ex
2007-12-06 21:27
2008.08.24
Как получиьт изображение окна?


15-1214913162
abhtr
2008-07-01 15:52
2008.08.24
Странности с набором кода