> -- Rifat писал(а):
> В случае строк согласен, можно обойтись без динамических массивов.Но без динамических массивов нельзя обойтись когда, имеется большой объем данных, в которых требуется быстро находить требуемый элемент. Одно из очевидных решений, отсортировать массив, и затем бинарным поиском искать требуемый элемент много раз. Можно конечно и здесь обойтись без динамических массивов, если реализовать сбалансированное дерево, в котором также можно искать с помощью бинарного поиска. Но сбалансированное дерево требует больше памяти, чем массив, за счет того, что требуется хранить ссылки на левого и правого потомков. К тому же алгорит балансировки дерева в несколько раз сложнее алгоритма сортировки, например.Поэтому я считаю, что если мы отбрасываем динамические массивы, то мы также отбрасываем большой пласт эффективных по времени и памяти алгоритмов.
Мне это очень напомнило ситуацию с (чистыми)функциональными языками. Вначале мы отпиливает (насовсем) изменяемость (mutable types), как лишнее. Как то, без чело проще жить. А затем, как возникает алгоритмическая задача плохо ложащаяся на неизменяемые типы данных, мы начинаем выдумывать обходные пути, городить костыли, вводить понятия типа "аммортизиацинная сложность алгоритма", сильно отдающие маркетингом и т.п. Ну и вообще, аммортизационная сложность O(1), а то что оно работает в 10-20 раз медленнее чем то же на простом Си или ином языке с mutable data, это уже мелочь.