|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
Мои знания ограничиваются тем, что один проход цикла это O(n), вложенный цикл это O(N^2) и так далее: Но вот например merge sort: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Общеизвестно, что это O(nlogn) n - видимо потому, что цикл. Логарифм не понимаю откуда берётся ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:23 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
questionerМои знания ограничиваются тем, что один проход цикла это O(n), вложенный цикл это O(N^2) и так далее: Но вот например merge sort: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Общеизвестно, что это O(nlogn) n - видимо потому, что цикл. Логарифм не понимаю откуда берётся Потому, что рекурсивное дерево обходится? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:25 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
логарифм берется когда внутри цикла может быть какое-то действие которое этот цикл может укоротить. в твоем случае i и k изменяются внутри цикла. следовательно сложность логарифмическая. не будь ее - была бы эн. кстати, могу ошибаться но в о-нотации нлогн=логн фактически. и да, нкуб тоже нет. есть нквадрат. два вложенных там у тебя цикла или двадцать два -- это не важно уже. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:41 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
O(Log n) - поиск деленеим попалам ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:42 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
есть хотя ВРОДЕ разные методы оценки комплексити я слышал про всякие вида O(a+bLogd+d2+n3) -- но по-моему меня просто на собеседовании обманули или сами дибилы верили в то что такое бывает )) Один мне доказывал что есть комплексити О(n*m) где n и m -- Это размеры каждого цикла из двух вложенных. понятия ворст кейс он по ходу тупо не знал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:44 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
O (омега большая) - как раз и означает ворст кейс. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:46 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
HettO (омега большая) - как раз и означает ворст кейс. у некоторых есть заблуждение что омега - это просто некая нотация описывающая сложность алгоритма. кстати.. если уж к казуистике спускаемся. ворст кейс хашмапа -- не 1 а n но пишут то 1? или то речь всё же о мапе в идеальном сферическом случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:48 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
Я там выше опечатался, где написал О назвал омегой. Там "О". авторкстати.. если уж к казуистике спускаемся. ворст кейс хашмапа -- не 1 а n но пишут то 1? или то речь всё же о мапе в идеальном сферическом случае? потому что в мапу если напихать объектов с одинаковым хешем, они поместятся в один кортеж (или как он там называется не помню), после чего алгоритм будет перебирать весь этот кортеж в поисках нужного объекта по equals - отсюда и худьшее - O(n). Лучше - Ω(1). ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:52 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
неее)) почему так происходит это я прекрасно знаю. я сказал это в контексте ворст кейса и описании комплексити. так, т.е. есть О нотация есть Омега нотация для хашмапа О нотация всё же не ворст кейс показывает? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:54 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
На википендии написано что у хешмепа среднее - О(1), худьшее - О(n) По поводу омеги, тетты и других букв, читал где-то давно в статье какой-то, но видимо мало кто использует эти буквы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:55 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
автор О нотация всё же не ворст кейс показывает Русской версии википедии - получается что О - это именно худьшее. https://ru.wikipedia.org/wiki/Вычислительная_сложность В английской почему-то я не нашел дополнительных букв и там пишут просто best/average/worst case. https://en.wikipedia.org/wiki/Computational_complexity_theory#Best,_worst_and_average_case_complexity ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 13:02 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
"О-большое" это не худшее и не лучшее. Это "оценка по порядку величины". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 14:37 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
andreykaTлогарифм берется когда внутри цикла может быть какое-то действие которое этот цикл может укоротить. в твоем случае i и k изменяются внутри цикла. следовательно сложность логарифмическая. не будь ее - была бы эн. кстати, могу ошибаться но в о-нотации нлогн=логн фактически. и да, нкуб тоже нет. есть нквадрат. два вложенных там у тебя цикла или двадцать два -- это не важно уже. Ну ты чего то совсем гонишь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:59 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
questioner, вы уверены что правильно скопировали исходник? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:16 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
maytonquestioner, вы уверены что правильно скопировали исходник? Я не копировал - сам написал. Пару кейсов прошло. А что накосячил где? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:31 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
questionerandreykaTлогарифм берется когда внутри цикла может быть какое-то действие которое этот цикл может укоротить. в твоем случае i и k изменяются внутри цикла. следовательно сложность логарифмическая. не будь ее - была бы эн. кстати, могу ошибаться но в о-нотации нлогн=логн фактически. и да, нкуб тоже нет. есть нквадрат. два вложенных там у тебя цикла или двадцать два -- это не важно уже. Ну ты чего то совсем гонишь конкретизируй предъявы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:34 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
andreykaTлогарифм берется когда внутри цикла может быть какое-то действие которое этот цикл может укоротить. в твоем случае i и k изменяются внутри цикла. следовательно сложность логарифмическая. не будь ее - была бы эн. кстати, могу ошибаться но в о-нотации нлогн=логн фактически. и да, нкуб тоже нет. есть нквадрат. два вложенных там у тебя цикла или двадцать два -- это не важно уже. Ну при insertion sort вложенный цикл уменьшается и всё равно n^2 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:39 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
код покажи ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:39 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
...посмотрел. там два вложенных цикла. где противоречие со сказанным мною?? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:40 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
andreykaTесть хотя ВРОДЕ разные методы оценки комплексити я слышал про всякие вида O(a+bLogd+d2+n3) -- но по-моему меня просто на собеседовании обманули или сами дибилы верили в то что такое бывает )) Один мне доказывал что есть комплексити О(n*m) где n и m -- Это размеры каждого цикла из двух вложенных. понятия ворст кейс он по ходу тупо не знал. Вообще-то может. вот пример O(n+m) - https://ru.wikipedia.org/wiki/Сортировка_подсчётом ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:41 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
andreykaT...посмотрел. там два вложенных цикла. где противоречие со сказанным мною?? andreykaT логарифм берется когда внутри цикла может быть какое-то действие которое этот цикл может укоротить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:42 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
questionerandreykaTесть хотя ВРОДЕ разные методы оценки комплексити я слышал про всякие вида O(a+bLogd+d2+n3) -- но по-моему меня просто на собеседовании обманули или сами дибилы верили в то что такое бывает )) Один мне доказывал что есть комплексити О(n*m) где n и m -- Это размеры каждого цикла из двух вложенных. понятия ворст кейс он по ходу тупо не знал. Вообще-то может. вот пример O(n+m) - https://ru.wikipedia.org/wiki/Сортировка_подсчётом ты хоть читаешь то что сюда линками выкладываешь? где ты там О нотацию вообще увидел? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:51 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
andreykaTquestionerпропущено... Вообще-то может. вот пример O(n+m) - https://ru.wikipedia.org/wiki/Сортировка_подсчётом ты хоть читаешь то что сюда линками выкладываешь? где ты там О нотацию вообще увидел? https://en.wikipedia.org/wiki/Counting_sort Therefore, the time for the whole algorithm is the sum of the times for these steps, O(n + k). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:57 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
questionermaytonquestioner, вы уверены что правильно скопировали исходник? Я не копировал - сам написал. Пару кейсов прошло. А что накосячил где? Я не говорил что ты накосячил. Главная задача которая ставилась теоретиками перед merge sort - это сортировка последовательных данных. Лент. Дисковых файлов. Причем - многократно превышающих доступную память. У тебя эти фичи не показаны. И не продемонстрирована работа со стримами. Кроме того имеют место различные операции с массивами. Я бы их попробовал избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:59 |
|
Как считать O(n) сложнее чем O(n^2),O(n^3)
|
|||
---|---|---|---|
#18+
questionerandreykaTпропущено... ты хоть читаешь то что сюда линками выкладываешь? где ты там О нотацию вообще увидел? https://en.wikipedia.org/wiki/Counting_sort Therefore, the time for the whole algorithm is the sum of the times for these steps, O(n + k). у тебя в двух линках написано по-разному. мне какой больше верить? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 19:02 |
|
|
start [/forum/topic.php?fid=59&msg=39721632&tid=2121696]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 503ms |
0 / 0 |