Зачем нужны эти алгоритмы, если есть более быстрые.
Извините если какую-то фигню сказал, я только начал изучать алгоритмы
Другие языки программирования и технологии
Зачем нужны алгоритмы О(n), O(n!)?
О (n) - это значит что алгоритм выполняется за линейное время. То есть как раз очень быстро. Медленно это О (n ^ 2) - квадратичная сложность. Например сортировка пузырьком. Но и эти алгоритмы тоже нужны хотя бы для понимания информатики
Миша Лосев
Просто не очень понял зачем применять более медленные алгоритмы
>Извините если какую-то фигню сказал, я только начал изучать алгоритмы
Извиняем, изучай дальше - авось поймешь, что сморозил.
Извиняем, изучай дальше - авось поймешь, что сморозил.
Миша Лосев
ладно
O(n) - это очень быстрый алгоритм. Быстрее только O(log(n)) и O(1). Найти значение в неотсортированном массиве быстрее, чем O(n) ты не сможешь. Поиск в отсортированном массиве - уже O(log(n)), но чтобы отсортировать массив, понадобится O(n*log(n)) - что дольше, чем O(n).
O(n!) - это сложность нахождения наилучшего решения для всех NP-полных задач. Более быстрых алгоритмов для них не придумали. Потому, в реальной жизни для этих задач ищут не наилучшее решение, а решение, близкое к оптимальному - что можно сделать намного быстрее.
O(n!) - это сложность нахождения наилучшего решения для всех NP-полных задач. Более быстрых алгоритмов для них не придумали. Потому, в реальной жизни для этих задач ищут не наилучшее решение, а решение, близкое к оптимальному - что можно сделать намного быстрее.
Люди не специально создают O(n) алгоритмы и O(n!) - просто находят алгоритм решения задачи, какой-то алгоритм за O(n) решает, а какой-то за O(n!).
Если найдётся эффективный и универсальный алгоритм отсортировки за O(log(n)) - то все быстро на него перейдут, а O(n) будет только в учебниках как пример.
А где-то O(n!) это хорошо, вот скажем, ты бы хотел, чтобы твой пароль взламывался за O(n) времени или за O(n!)? Андрей уже упомянул NP-полные задачи. Одной из задач тысячелетия как раз и является, можно ли NP задачи решать за полиномиальное время (O(n в какой-то степени)). Если NP задачу можно быстро проверить, то можно ли её быстро решить?
Если найдётся эффективный и универсальный алгоритм отсортировки за O(log(n)) - то все быстро на него перейдут, а O(n) будет только в учебниках как пример.
А где-то O(n!) это хорошо, вот скажем, ты бы хотел, чтобы твой пароль взламывался за O(n) времени или за O(n!)? Андрей уже упомянул NP-полные задачи. Одной из задач тысячелетия как раз и является, можно ли NP задачи решать за полиномиальное время (O(n в какой-то степени)). Если NP задачу можно быстро проверить, то можно ли её быстро решить?
Похожие вопросы
- Сложность алгоритмов приведите два примера когда алгоритм квадратичной сложности О (n) будет ХУДШИМ выбором чем O(n^2)
- Подскажите мне пожалуиста что такое алгоритм и зачем компьютеру. нужен алгоритм.И что такое прога Паскаль и зачем она
- написать программу на с++ (windows) и алгоритм для решения последовательности n! перестановок на множестве {1,2...n}
- нужен алгоритм
- Помогите составить блок схему. Данны целые числа n, k (n>=k>=0). Вычислить n(n-1)*(n-2)... (n-k-1)/k!
- Решите задачу! Дано целое число n найдите сумму 1^n +2^n-1 + 3^n-2 ...+n^1
- C++, какой смысл приписывать к числам букву L? (long N(0L), N % 2L) Чем грозит неприписывание? Особенн в Visual studio.
- Нужен алгоритм перебора массива.
- как посчитать 365! (С++) Нужен алгоритм вычисления факториала больших чисел.
- нужен алгоритм !