Здравствуйте, nikov, Вы писали:
N>Кстати, предварительная сортировка коллекций и то даст лучший результат, чем вложенные циклы.
Не всегда, возможно что затраты на потребление памяти и мусорщика перевесят код тупых циклов.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, _DAle_, Вы писали:
_DA>Не в тему, но.. всегда интересовало, почему в качестве самой простой (ну или первой в книге) сортировки приводят bubble sort. IMHO, не знающему алгоритмов сортировки школьнику придет в голову скорее алгоритм: находим минимум, меняем с первым, и т.д. Обычный selection sort, простой как топор, еще и эффективнее, чем пузырек.
Может чтобы плавно перейти от алгоритмов к их эффективности. Типа "вот вам пурызрёк — всё работает, но мееедленно, вот давайте поизобретаем что-нибудь более интересное". Показать учащимся, что не всегда факт, что заработало, говорит о том, что задача решена.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[22]: Почему преждевременная оптимизация - корень всех зол
Здравствуйте, Юрий Жмеренецкий, Вы писали:
ЮЖ>Легко, например O(N^2). Это гарантия.
Это пять!!!
ЮЖ>Баг в моей интерпретации — если вместо O(N) — по факту О(N^2).
А это совсем круто!
ЮЖ>Надо обеспечить поиск с логарифмической сложностью(это контракт 'для use-case'). Почему ты не будешь использовать пузырек ?
Откуда такие use-case? Это даже не use-case.
S>>Во-вторых, это понимание глубинного принципа рыночной экономики — satisficing. Он состоит в том, что нам важнее не абсолютная производительность/качество/итд, а достаточная. ЮЖ>Достаточное качество/итд бывает оочень разным.
Достаточно качество итд — когда заказчик говорит "Good enough" и все.
Re[23]: Почему преждевременная оптимизация - корень всех зол
Здравствуйте, gandjustas, Вы писали:
S>>>Во-вторых, это понимание глубинного принципа рыночной экономики — satisficing. Он состоит в том, что нам важнее не абсолютная производительность/качество/итд, а достаточная. ЮЖ>>Достаточное качество/итд бывает оочень разным. G>Достаточно качество итд — когда заказчик говорит "Good enough" и все.
Ты может забыл, что предметные области бывают разными.
Enterprise — один мир, mission/safety critical — другой, desktop — третий и т.п. И в каждом из них это "good enough" совершенно разное.
Re[24]: Почему преждевременная оптимизация - корень всех зол
Здравствуйте, Alxndr, Вы писали:
A>Здравствуйте, gandjustas, Вы писали:
S>>>>Во-вторых, это понимание глубинного принципа рыночной экономики — satisficing. Он состоит в том, что нам важнее не абсолютная производительность/качество/итд, а достаточная. ЮЖ>>>Достаточное качество/итд бывает оочень разным. G>>Достаточно качество итд — когда заказчик говорит "Good enough" и все.
A>Ты может забыл, что предметные области бывают разными. A>Enterprise — один мир, mission/safety critical — другой, desktop — третий и т.п. И в каждом из них это "good enough" совершенно разное.
И что? В critical программах в достаточные характеристики описываются в формально спецификации.
Re[5]: Почему преждевременная оптимизация - корень всех зол?
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>При условии, что для этой оптимизации не требуется полностью изменить алгоритм и структуры данных программы. А вот если потребуется — пишите все с начала.
M>Необязательно все. Интеграционные тесты останутся. Если интрефейс к внешним системам не менять.
Тесты — это не часть системы в данном контексте. Их можно было написать и до самой системы.