![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамичемкие массивы VS Динамические списки [D5, D6, XP]
Галинка © (2006-02-19 13:31:00)Что стоит предпочесть, если нет конкретного задания использоать то или другое?
И где можно почитать что-нибудь прочитать про второе. Идеально было бы Файмана, или в том же духе. Чтобы попроще...
evvcom (2006-02-20 08:47:00) [1]
> Типичная списковая задача
Очередь, стек...
Defunct (2006-02-20 02:34:00) [2]> Я так понимаю, массивы динамические только де-юро, де-факто - они просто произвольной длины, каждой раз новой.
Очень хорошо и точно сказано.
> Списки реально динамичны, но у них немного другие задачи.
Основная задача, характерная для дин. списков, - накопление данных с произвольным размещением, и с возможностью быстрого удаления произвольных элементов. Типичная списковая задача - Cut/Copy/Paste.
Галинка (2006-02-20 01:58:00) [3]Defunct © (20.02.06 01:02) [13]
Я так понимаю, массивы динамические только де-юро, де-факто - они просто произвольной длины, каждой раз новой.
Списки реально динамичны, но у них немного другие задачи.
ИМХО моя математика плохо дружит со списками. Во всяком случае пока.
Defunct (2006-02-20 01:02:00) [4]> Галинка
не надо предпочитать, надо использовать в комбинации, для достижения максимального эффекта.
Массивы предпочтительнее для задач произвольного поиска, но удаление элемента массива - операция весьма ресурсоемкая, когда требуется соблюдать сортировку..
Динамические списки, напротив, - практически не пригодны для задач произвольного поиска, т.к. доступ к элементам можно осуществить только последовательно, однако отличаются высокой эффективностью кода удаления произвольного элемента.
т.о. они друг друга дополняют.
Галинка (2006-02-19 23:57:00) [5]Zeqfreed © (19.02.06 23:35) [11]
Спасибо. Прочитала. Но пока, извините, останусь при своем мнении. В арифметике массивы удобнее.
Ну например задачка. Запомнить члены полинома, т.е. степнь переменной и коэффициент при ней. Удобнее в массиве динамическом. Сам элемент это коэффициент, его индекс - показатель степени при нем. Вытаскивать потом тоже удобно. Особенно елс потом надо найти производную или умножить этот полином на другой )) Ну зачем тут списками голову ломать. И числа простые и искать их можно в массиве быстрее. Да и выделить под дин массив можно именно столько памяти сколько нужно
Объекты в приложении учитывать или вообще учет чего-то сложного нужно списками. Но в арифметике использование списков ИМХО "из пушки по воробьям"
Zeqfreed (2006-02-19 23:35:00) [6][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:27:00) [7]Джо © (19.02.06 23:21) [9]
Так я и пытаюсь ))
Я понимаю, что все списки в Дельфи так строются. Но я пока не собираюсь писать собственные классы. И разбираться досканально тоже. В расчетах так понимаю удобнее и проще использовать массивы динамические. Или?
Джо (2006-02-19 23:21:00) [8]> [8] Галинка © (19.02.06 23:19)
> TUser © (19.02.06 23:13) [7]
>
> Так списки вообще не нужны что ли? Или только в Дельфи?
> Или это просто пережитки "седой старины"?
>
> А динамические массивы тоже в "куче" лежат? Или ...?
Или. Учиться, учиться и еще раз учиться :)
Галинка (2006-02-19 23:19:00) [9]TUser © (19.02.06 23:13) [7]
Так списки вообще не нужны что ли? Или только в Дельфи? Или это просто пережитки "седой старины"?
А динамические массивы тоже в "куче" лежат? Или ...?
TUser (2006-02-19 23:13:00) [10]> Я так подозреваю, испоьзование списков оправдано если в ну очень маленькой памяти надо разместить ну очень много.
НАоборот, список больше памяти требует, чем массив.
> За их изобретение можно сказать спасибо программрам из Борланда.
А еще Санта-Клаусу.
Галинка (2006-02-19 23:08:00) [11]Джо © (19.02.06 18:43) [5]
Спасибо.
Всем: Разобралась вроде бы. Труднова-то но удобоваримо.
Только непонятно все же зачем. Я так подозреваю, испоьзование списков оправдано если в ну очень маленькой памяти надо разместить ну очень много.
Если ограничиться, например, размером массива из 256 элементов реал-типа, то можно обойтись и массивом. К тому же и работать с ним удобнее. За их изобретение можно сказать спасибо программрам из Борланда. Облегчили жизнь ...
Джо (2006-02-19 18:43:00) [12]> [2] tesseract © (19.02.06 17:22)
> [3] Галинка © (19.02.06 17:32)
> Насколько она просто написана?
Написано очень неплохо. Английскую версию могу выслать по почте (в сжатом виде около 3 Мб), русский перевод можно взять здесь:
http://infostore.org/info/489045
(~ 40 Мб).
TUser (2006-02-19 18:40:00) [13]Список жует дополнительную память. Он не позволяет обращаться к элементу по индексу и быстро искать. Ну там просто вставлятиь/удалять.
Массив занимает меньше памяти. Однако, необдуманое использование массивов приведет к ее дефрагментации. Можно обращаться по индексу. Можно организовать быстрый поиск.
Вот так примерно.
Галинка (2006-02-19 17:32:00) [14]tesseract © (19.02.06 17:22) [2]
Насколько она просто написана?
tesseract (2006-02-19 17:22:00) [15]Списки как правило используются вместе с массивами. Так быстрее. Лучше поискать книгу "Фундаментальные алгоритмы и типы данных на delphi". Там это всё очень подробно расписано.
Desdechado (2006-02-19 14:59:00) [16]списки гибче, массивы проще