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

Вниз

Динамичемкие массивы VS Динамические списки   Найти похожие ветки 

 
Галинка ©   (2006-02-19 13:31) [0]

Что стоит предпочесть, если нет конкретного задания использоать то или другое?

И где можно почитать что-нибудь прочитать про второе. Идеально было бы Файмана, или в том же духе. Чтобы попроще...


 
Desdechado ©   (2006-02-19 14:59) [1]

списки гибче, массивы проще


 
tesseract ©   (2006-02-19 17:22) [2]

Списки как правило используются вместе с массивами. Так быстрее. Лучше поискать книгу "Фундаментальные алгоритмы и типы данных на delphi". Там это всё очень подробно расписано.


 
Галинка ©   (2006-02-19 17:32) [3]

tesseract ©   (19.02.06 17:22) [2]

Насколько она просто написана?


 
TUser ©   (2006-02-19 18:40) [4]

Список жует дополнительную память. Он не позволяет обращаться к элементу по индексу и быстро искать. Ну там просто вставлятиь/удалять.

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

Вот так примерно.


 
Джо ©   (2006-02-19 18:43) [5]

> [2] tesseract ©   (19.02.06 17:22)
> [3] Галинка ©   (19.02.06 17:32)
> Насколько она просто написана?

Написано очень неплохо. Английскую версию могу выслать по почте (в сжатом виде около 3 Мб), русский перевод можно взять здесь:
http://infostore.org/info/489045
(~ 40 Мб).


 
Галинка ©   (2006-02-19 23:08) [6]

Джо ©   (19.02.06 18:43) [5]

Спасибо.

Всем: Разобралась вроде бы. Труднова-то но удобоваримо.

Только непонятно все же зачем. Я так подозреваю, испоьзование  списков оправдано если в ну очень маленькой памяти надо разместить ну очень много.

Если ограничиться, например, размером массива из 256 элементов реал-типа, то можно обойтись и массивом. К тому же и работать с ним удобнее. За их изобретение можно сказать спасибо программрам из Борланда. Облегчили жизнь ...


 
TUser ©   (2006-02-19 23:13) [7]

> Я так подозреваю, испоьзование  списков оправдано если в ну очень маленькой памяти надо разместить ну очень много.

НАоборот, список больше памяти требует, чем массив.

> За их изобретение можно сказать спасибо программрам из Борланда.

А еще Санта-Клаусу.


 
Галинка ©   (2006-02-19 23:19) [8]

TUser ©   (19.02.06 23:13) [7]

Так списки вообще не нужны что ли? Или только в Дельфи? Или это просто пережитки "седой старины"?

А динамические массивы тоже в "куче" лежат? Или ...?


 
Джо ©   (2006-02-19 23:21) [9]

> [8] Галинка ©   (19.02.06 23:19)
> TUser ©   (19.02.06 23:13) [7]
>
> Так списки вообще не нужны что ли? Или только в Дельфи?
> Или это просто пережитки "седой старины"?
>
> А динамические массивы тоже в "куче" лежат? Или ...?

Или. Учиться, учиться и еще раз учиться :)


 
Галинка ©   (2006-02-19 23:27) [10]

Джо ©   (19.02.06 23:21) [9]

Так я и пытаюсь ))

Я понимаю, что все списки в Дельфи так строются. Но я пока не собираюсь писать собственные классы. И разбираться досканально тоже. В расчетах так понимаю удобнее и проще использовать массивы динамические. Или?


 
Zeqfreed ©   (2006-02-19 23:35) [11]

[10] Галинка ©   (19.02.06 23:27)

Стоит хотя бы это почитать:
http://algolist.manual.ru/ds/basic/index.php
http://alglib.sources.ru/articles/struct.php


 
Галинка ©   (2006-02-19 23:57) [12]

Zeqfreed ©   (19.02.06 23:35) [11]

Спасибо. Прочитала. Но пока, извините, останусь при своем мнении. В арифметике массивы удобнее.

Ну например задачка. Запомнить члены полинома, т.е. степнь переменной и коэффициент при ней. Удобнее в массиве динамическом. Сам элемент это коэффициент, его индекс - показатель степени при нем. Вытаскивать потом тоже удобно. Особенно елс потом надо найти производную или умножить этот полином на другой )) Ну зачем тут списками голову ломать. И числа простые и искать их можно в массиве быстрее. Да и выделить под дин массив можно именно столько памяти сколько нужно

Объекты в приложении учитывать или вообще учет чего-то сложного нужно списками. Но в арифметике использование списков ИМХО "из пушки по воробьям"


 
Defunct ©   (2006-02-20 01:02) [13]

> Галинка

не надо предпочитать, надо использовать в комбинации, для достижения максимального эффекта.

Массивы предпочтительнее для задач произвольного поиска, но удаление элемента массива - операция весьма ресурсоемкая, когда требуется соблюдать сортировку..

Динамические списки, напротив, - практически не пригодны для задач произвольного поиска, т.к. доступ к элементам можно осуществить только последовательно, однако отличаются высокой эффективностью кода удаления произвольного элемента.

т.о. они друг друга дополняют.


 
Галинка ©   (2006-02-20 01:58) [14]

Defunct ©   (20.02.06 01:02) [13]

Я так понимаю, массивы динамические только де-юро, де-факто - они просто произвольной длины, каждой раз новой.

Списки реально динамичны, но у них немного другие задачи.

ИМХО моя математика плохо дружит со списками. Во всяком случае пока.


 
Defunct ©   (2006-02-20 02:34) [15]

> Я так понимаю, массивы динамические только де-юро, де-факто - они просто произвольной длины, каждой раз новой.

Очень хорошо и точно сказано.

> Списки реально динамичны, но у них немного другие задачи.

Основная задача, характерная для дин. списков, - накопление данных с произвольным размещением, и с возможностью быстрого удаления произвольных элементов. Типичная списковая задача - Cut/Copy/Paste.


 
evvcom ©   (2006-02-20 08:47) [16]


> Типичная списковая задача

Очередь, стек...



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

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

Наверх




Память: 0.51 MB
Время: 0.029 c
2-1140372864
sashaka
2006-02-19 21:14
2006.03.05
Как узнать дату?


2-1139892953
Bolbes
2006-02-14 07:55
2006.03.05
MS SQL


1-1138890546
kblc
2006-02-02 17:29
2006.03.05
Если не помогает WaitForSingleObject ...


6-1132598403
Карелин Артем
2005-11-21 21:40
2006.03.05
Зашифровка траффика в IntraWeb. Как сделать?


3-1136643582
plop
2006-01-07 17:19
2006.03.05
ORA-00xxx