2016-08-11 9 views
1

Может ли кто-то отличить оптимальность и эффективность? Укажите определение для каждого термина, если это возможно.В чем разница между оптимальностью и эффективностью?

+1

Это широкая тема, а также изобилует мнением. Вероятно, это не подходит для SO. Ответ, который вы приняли, является правильным, насколько это возможно, но он не проходит достаточно далеко. На эту тему написаны целые книги *. –

ответ

5

В обоих случаях есть критерии. В programming или algorithms они обычно оба относятся к одному из: операций, времени или памяти и методу измерения.

Оптимальный - часто обозначается как OPT в алгоритмах - это лучшее решение в соответствии с критериями. Это означает, что лучшего решения не существует. Осторожно! Может быть более одного решения OPT!

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

Решение efficient будет optimal.

+0

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

+0

В моем университете мы говорим, что это оптимально с точки зрения скорости, памяти или обоих из них. Таким образом, вы можете иметь оба оптимальных варианта: оптимальное по скорости и оптимальное для памяти решение. Обычно вы не можете сделать заказ по алгоритмам из-за того, что некоторые из них абсолютно не сопоставимы. Тем не менее я вижу вашу точку зрения, и я подумаю, как изменить свой ответ. – xenteros