Выбор неэффективной структуры данных, какие проблемы это может создать для нас? - PullRequest
1 голос
/ 04 февраля 2010

Предположим, у меня есть программа, которая использует неэффективную структуру данных. Теперь, как я могу сделать это эффективно. кажется, что мы должны просто изменить структуру данных, но на самом деле это не так. по моему мнению, все программное обеспечение должно быть изменено. какова ваша точка зрения?

Ответы [ 4 ]

2 голосов
/ 04 февраля 2010

Вопрос может быть слишком неопределенным, чтобы мы могли дать точный ответ, но использование «неэффективной» структуры данных может означать:

  • для доступа к данным потребуется больше времени / больше ресурсов процессора (будь то для вставки / чтения / удаления)
    • , что может привести к проблемам с производительностью; т.е. медленное приложение
    • а время это деньги
  • может потребоваться больше времени для написания кода, который обращается к этой структуре данных
    • и время разработчика тоже стоит денег


Следует ли изменить все приложение или исправить его, чтобы использовать «правильную» структуру данных?

Хорошо:

  • Сколько будет стоить изменение структуры данных?
  • А сколько будет стоить изменение всего приложения?
    • Включая время, необходимое для переноса данных, объясните пользователям, как использовать новое приложение, ...
1 голос
/ 04 февраля 2010

Это очень субъективно и, вероятно, должно быть помечено как таковое.

Это будет во многом зависеть от того, какой язык вы используете, насколько большую роль играет эта структура данных в приложении, насколько гибким был написан исходный код для учета изменений структуры, и фактический тип структуры данных .

По большей части, если ваше приложение написано правильно, вы легко сможете изменить его, но вы найдете случаи, когда дизайн не позволил бы легко измениться, и единственное под рукой более сложное решение.

0 голосов
/ 04 февраля 2010

Я не уверен, что этот вопрос был задан таким образом, чтобы получить правильный ответ. Это способ расплывчато. ИМХО

0 голосов
/ 04 февраля 2010

Нужно хотя бы знать, что будет дешево и что дорого с хорошими алгоритмами. Когда Java только вышел, я увидел, как кто-то создал платформу Collections. Они мало что знали о структурах данных, и это было очень неэффективно. Я отправил им по почте, и они сказали: «О - я знал об этом. Теперь, когда я привлек интерес людей к этой проблеме, кто-то другой может заставить ее работать быстро». Но они выбрали операции, для которых не было хорошей реализации (log n), и они не предоставили операций, которые могут быть реализованы эффективно и которые были бы полезны в этой среде (думаю, я помню слияние очередей с приоритетами).

Таким образом, не было никакого хорошего способа взять программу, написанную на их неудачной платформе Collections, и ускорить ее, просто исправив реализацию этой фреймворки.

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