Преимущества использования динамических массивов в программировании:
- возможность обрабатывать однородные данные переменного размера; gb.ru
- эффективное управление памятью, позволяющее адаптироваться к изменяющимся требованиям; gb.ru
- время обращения или изменения значения любого элемента массива не зависит от его позиции. gb.ru
Недостатки использования динамических массивов:
- вставка или удаление объектов в произвольном положении выполняется очень медленно, так как каждый раз должна сдвигаться половина массива; stackoverflow.com
- особенно плохо выполняется вставка и удаление в начале массива, так как при этом должен копироваться весь массив; stackoverflow.com
- непредсказуемая производительность, когда для вставки или удаления требуется изменение размера. stackoverflow.com
Преимущества использования связанных списков в программировании:
- быстрое добавление и удаление объектов в любой позиции списка; stackoverflow.com
- внесение изменений в середину списка выполняется очень быстро; habr.com
- структурная гибкость: порядок элементов связного списка может не совпадать с порядком расположения элементов данных в памяти компьютера. ru.wikipedia.org
Недостатки использования связанных списков:
- сложность прямого доступа к элементу, а именно определения физического адреса по его индексу (порядковому номеру); ru.wikipedia.org
- в списке на поля-указатели (указатели на следующий и предыдущий элемент) расходуется дополнительная память; ru.wikipedia.org
- некоторые операции со списками медленнее, чем с массивами, так как к произвольному элементу списка можно обратиться, только пройдя все предшествующие ему элементы; ru.wikipedia.org
- соседние элементы списка могут быть распределены в памяти нелокально, что снизит эффективность кэширования данных в процессоре. ru.wikipedia.org