В общем, наиболее важным решением проблемы будет то, которое действительно существует и действительно для тех случаев, которые существуют для вашей проблемы. Другими словами, избегайте преждевременной оптимизации до тех пор, пока вы действительно не узнаете, что имеете неэффективный код или эффективный код, который должен быть быстрее.
Кроме того, не забывайте, что лучшим решением для вашего приложения может быть не общее решение проблемы. Случай и точка, пару лет назад профессор поставил нашему классу задачу, в которой мы должны были напечатать первые 10 чисел данного типа (извините, моя память подводит меня в отношении типа, но это был один из наиболее необычных чисел классы), и нам дали тест, чтобы убедиться, что число было данного типа. Это было масштабом проблемы, которую нам дали, и нам сказали, что это должно было произойти на следующий день с наиболее эффективным решением, получающим полный кредит. Следующая лекция профессора подвела итоги:
- Некоторые учащиеся использовали простой цикл и формулу, чтобы проверить правильность чисел и отобразить их, медленно, но выполнив задание, O (n ^ 3).
- Другие студенты провели исследование и нашли формулу, которая лучше проверяла правильность заданного числа, эти программы работали намного быстрее, O (n ^ 2).
- Один студент использовал медленную формулу для генерации значений, а затем скопировал их в константный массив в своем коде и отобразил его содержимое, O (n).
Окончательное решение было признано профессором наиболее эффективным. Оказывается, что проблема была на самом деле упражнением в полном понимании проблемы, а не просто в поиске наиболее эффективного решения.
Суть вышесказанного заключается в том, что когда дело доходит до поиска эффективного решения проблемы, как правило, лучше потратить время, чтобы убедиться, что вы действительно понимаете, в чем заключается проблема, прежде чем приступить к написанию кода или попытке оптимизировать код. Если вы можете хранить набор эталонных значений в константном массиве, то вам лучше сделать это с точки зрения производительности, чем пытаться написать какой-нибудь причудливый алгоритм.
Кроме того, не забывайте, что для большинства приложений единственными, кто склонен видеть неэффективный код (если он не является излишне неэффективным!), Являются сами разработчики. Если вы пишете чистый код, который выполняет только то, что ему нужно, то есть вероятность, что в большинстве случаев пользователи не будут замечать проблем с производительностью при работе с вашей программой и когда они просто оптимизируют те части, которые они упоминают вы.