Структуры данных - когда использовать какие? - PullRequest
2 голосов
/ 09 декабря 2010

Я собираюсь собрать блок-схему для определения того, какие структуры данных подходят для данной проблемы.Список структур данных: массив, связанный список (одинарный / двойной), хэш (карты и т. Д.), Деревья (двоичные, N-way) и список пропусков.

Критерии выбора списка (с моей точки зрения): 1) ограниченный или неограниченный 2) произвольный или последовательный доступ 3) основная операция (чтение, запись, вставка, удаление) 4) производительность 5) простота кодирования

Например, еслиЯ знаю точное количество элементов, тогда обычно я буду использовать массив.Их легко искать (но не обязательно быстро) и легко поддерживать.

При больших объемах данных я предпочитаю использовать дерево для обхода времен.

Мне было бы интереснов поиске других потоковых диаграмм для выбора структур данных.

1 Ответ

1 голос
/ 20 марта 2011

Есть множество различных сценариев для рассмотрения. Это сложный вопрос, потому что его можно интерпретировать с точки зрения сложности или функциональности определенных структур данных. Например, если у вас есть программа, в которой проблема заключается в сортировке, BTree было бы неплохо, поскольку можно использовать BSearch для дерева. Но можно также выполнить BSearch для отсортированного массива. Существует дихотомия, чтобы рассмотреть для всех структур данных. Трудно рассмотреть все факторы, поскольку теоретически существует бесконечных способов использования структур данных. Это определенно в каждом конкретном случае, и придумать общую блок-схему не может быть хорошей идеей, но это только я.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...