Вчера этот вопрос пришел мне на ум. Хотя я не читал все алгоритмы сортировки, такие как Quicksort, Merge Sort, Heapsort Вставка Сортировка, Выбор Сортировка и Bubble Сортировка, и я не прочитал введение в алгоритмы CLRS, но все же мне интересно узнать, почему существует необходимо изучить все такие алгоритмы, когда предопределенная функция сортировки уже доступна для нас на многих языках.Зачем нам нужно изучать различные алгоритмы сортировки, когда функция сортировки STL уже доступна нам на C++?
ответ
Поскольку
Просто сортировочного только не может всегда быть обязательным требованием. Требование может быть другим. Вам может потребоваться изменить/интегрировать алгоритм сортировки, чтобы развить совершенно другую вещь.
Предопределенные методы сортировки могут быть неэффективными во всех случаях.
Его всегда не о сортированном результате, а о приближении сортировки, чтобы улучшить сложность времени и пространства. Эффективность - это ключ.
Нет особого алгоритма, который гарантированно будет работать лучше всего во всех случаях. Плюсы и минусы могут отличаться для разных алгоритмов.
Необходимо понять, какой алгоритм следует применять при каких сценариях.
Сортировка не всегда выполняется с помощью цифр. Он может применяться на других различных сложных типах/структурах. (Возможно, не существует предопределенных методов для сложных случаев)
Всегда есть возможность для лучшего подхода.
Чтобы быть справедливым, 'std :: sort' может взять компаратор для подключения сложных порядков сортировки, если тип не имеет' operator <'. – chris
На самом деле, самая важная инженерная проблема в реальном мире - это то, где хранятся ваши данные, и это полностью игнорируется в базовой процедуре сортировки Comp.Sci. В частности, местность ссылок является критическим фактором при сортировке. – MSalters
- 1. Зачем нам нужно targetNamespace?
- 2. Зачем нам нужно remove_copy_if?
- 3. Если существуют линейные алгоритмы сортировки по времени, такие как Radix Sort, когда нам нужно использовать сортировки сравнения?
- 4. Зачем нам нужно преобразовать Теано?
- 5. Функция сортировки STL-карт C++
- 6. Визуально выполняются различные алгоритмы сортировки
- 7. Зачем нам нужно блокирование намерений?
- 8. Зачем нам нужно создавать макет?
- 9. Зачем нам нужно использовать package.json?
- 10. Зачем нам C-союзы?
- 11. Зачем нам нужно устанавливать SONAR_RUNNER_OPTS?
- 12. Зачем нам нужно «Set Variable»?
- 13. Зачем нам нужно Явное преобразование
- 14. Зачем нам нужно использовать flatMap?
- 15. Зачем нам нужно программирование RPC?
- 16. Что нам нужно изучать, прежде чем начинать изучать netbeans?
- 17. Зачем нам делегаты C#
- 18. Когда нам нужно самосоединиться?
- 19. Зачем нам нужна функция crossCheckMatching?
- 20. Когда использовать алгоритмы сортировки
- 21. Зачем нам нужно разрешение на RBAC?
- 22. Зачем нам нужно zone_highmem на x86?
- 23. Зачем нам нужно изменять количество файлов i_generation?
- 24. Зачем нам нужно устанавливать цифровой сертификат?
- 25. Зачем нам нужно, чтобы обновить мобильное приложение?
- 26. Функция сортировки STL со компаратором
- 27. Зачем нам нужно создавать таблицу векторов прерываний?
- 28. , когда и зачем нам нужно разделить класс на многие классы?
- 29. Зачем нам нужен компилятор C++?
- 30. Что означает делегат? Зачем нам это нужно?
Потому что инженерное дело - компромиссы. 'std :: sort' - не лучший инструмент сортировки для каждой ситуации. – chris
Потому что знание - это сила. –
В этом отношении, зачем учиться программировать вообще, когда там так много программного обеспечения уже сделано? – MrEricSir