Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Вниз

Динамичемкие массивы 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.012 c
15-1139317557
Progger
2006-02-07 16:05
2006.03.05
чем Delphi 5 хуже более поздних версий? Или лучше?


2-1140001677
VitV
2006-02-15 14:07
2006.03.05
Panel


1-1138383603
Дмитрий_177
2006-01-27 20:40
2006.03.05
Рамка в Image и цвет пикселя в точке


1-1138871570
Bratskiy
2006-02-02 12:12
2006.03.05
Список названий шривтов в ComboBox


15-1139765957
PARUS
2006-02-12 20:39
2006.03.05
Параметры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский