Может ли кто-то отличить оптимальность и эффективность? Укажите определение для каждого термина, если это возможно.В чем разница между оптимальностью и эффективностью?
ответ
В обоих случаях есть критерии. В programming
или algorithms
они обычно оба относятся к одному из: операций, времени или памяти и методу измерения.
Оптимальный - часто обозначается как OPT
в алгоритмах - это лучшее решение в соответствии с критериями. Это означает, что лучшего решения не существует. Осторожно! Может быть более одного решения OPT
!
Эффективный ничего не значит сам по себе, но может использоваться в сочетании с компаратором. Это означает, что вы можете сказать, что один алгоритм более эффективен, чем другой, что означает, что он быстрее или меньше потребляет память.
Решение efficient
будет optimal
.
Ваше заключительное заявление не обязательно верно. Наиболее эффективным с точки зрения скорости может быть не оптимальное решение, поскольку оно требует по существу бесконечной памяти. Там теоретический оптимум, и есть реальный мир. Совсем не необычно, что менее эффективный алгоритм превосходит теоретически оптимальный алгоритм в реальном мире. –
В моем университете мы говорим, что это оптимально с точки зрения скорости, памяти или обоих из них. Таким образом, вы можете иметь оба оптимальных варианта: оптимальное по скорости и оптимальное для памяти решение. Обычно вы не можете сделать заказ по алгоритмам из-за того, что некоторые из них абсолютно не сопоставимы. Тем не менее я вижу вашу точку зрения, и я подумаю, как изменить свой ответ. – xenteros
Это широкая тема, а также изобилует мнением. Вероятно, это не подходит для SO. Ответ, который вы приняли, является правильным, насколько это возможно, но он не проходит достаточно далеко. На эту тему написаны целые книги *. –