Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.987 c
3-1204215439
slimer
2008-02-28 19:17
2008.08.24
Обрыв соединения с MySQL сервером


15-1215130039
DesWind
2008-07-04 04:07
2008.08.24
Что лучше?


15-1215516791
@!!ex
2008-07-08 15:33
2008.08.24
Объясните правила?


15-1215112003
@!!ex
2008-07-03 23:06
2008.08.24
Как влезть в память приложения?


2-1216233756
mefodiy
2008-07-16 22:42
2008.08.24
Передача в хранимую процедуру имени таблицы




   Наверх