Missing
+2

Простите, но то, что вы пишете, противоречиво по сути, призывая разобраться и навешивая ярлыки и озвучивая свое мнение о том, чего не знаете, не разобравшись. Это все вызывает резкое неприятие, быть может и верных, ваших утверждений. Я думаю, я не одинок в своем мнении, поэтому и решил написать это. Если вопрос не подлежит обсуждению(сужу по вашему категоричному, как мне показалось, мнению), зачем убеждать в этом других?

Missing
+4

И что тут правильного-то тут? Я минусанул, думал 3 раза написать ответку, но раз уж даже группа поддержки есть...

Ладно, так и быть, по пунктам:

"элита" - это секта наверное какая-то? Знание о теории, знание теории, умение применить теорию на практике,

умение формализовать практику в теорию(обобщить, абстрагировать - построить теорию ) четыре большие разницы. А то что некоторые люди(не переходя на личности в данном случае) называют практикой вообще отдельная тема. И любому человеку, который говорит о практике и только о ней, я могу ответить лишь , ок, я вас переубеждать в чем-то не буду (сами хороните своих мертвецов). Но я считаю, что теория развивается из практики (коллективной! что очень отличатеся от практики персональной, ну конечно если только вы не "светило" и то все не так однозначно") если наука не о балабольстве и нет стремления к балабольству(что случается и часто).

По сути. Приведенный пример показывает(но не доказывает), что автор не видит различия между АСИМПТОТИЧЕСКОЙ СЛОЖНОСТЬЮ алгоритма и ВРЕМЕНЕМ ВЫПОЛНЕНИЯ алгоритма(это две большие разницы даже если рассматривать ВРЕМЕННУЮ СЛОЖНОСТЬ). Неужели непонятно, что СЛОЖНОСТЬ И ВРЕМЯ разные понятия, и "медленнее" для СЛОЖНОСТИ это все равно что "горячо" для вкуса. CS создавали и развивали не балаболы!

Не буду углубляться в подробности, приведу пару утверждений.

1) асимптотическая сложность есть оценка функции от размерности причем НЕ количественная, а скорее отнесение к определенному множеству, которая позволяет нам делать некоторые суждения о поведении алгоритма не в конкретных случаях, а в целом n -> бесконечность.

2) любой алгоритм который оценен в O(n) можно оценить в O(n^2) и даже в O(n^100500). Эка я замедлил его одним предложением.... Кстати обычно происходит в обратном порядке - дается более грубая оценка, далее она улучшается доказатеством, применением определенных подходов в виде структур данных и тд...

3) коэфициент при старшей степени многочлена может быть большим и на малых размерностях ВРЕМЯ выполнения алгоритма оцененного в O(n) (сложность алгоритма оценивали) МОЖЕТ БЫТЬ МЕНЬШЕ чем алгоритма со сложностью O(n^2). Это элементарно проверить на практике, а еще проще проверить в теории, ибо теория именно об этом и говорит и даже не сильно важно есть ли там "ограничение ресурсов и блокировки." или программист Вася встал с левой ноги или с правой. Но то что вы написали, это балабольство и слышал звон, да не знаю где он, да еще и советую всем, что им как бы тоже не обязательно знать откуда звенит!

4) Я так понимаю 2 утверждения соответствующие 2 предложениям автора, сам автор на практике испытал?

Missing
+1

В теории разница(время работы алгоритма в описанной вами ситуации) будет видна(если посчитать точно к привязке к конкретной машине) - Одни и те же операции будут выполнятся разное время - константы при множителях будут разными, потому что так организован процессор). Теория скажет что эти 2 реализации одного и то же алгоритма описываются двумя разными функциями, но эти функции асимптотически эквиваленты, но не равны.

Missing

1) Простите, но привязали к конкретной машине вы, а не я. По поводу SICP, я затрудняюсь понять как это связано(опровергает или доказывает) то, что я сказал. Точно посчитать можно, но смысла(практического если угодно) в этом нет, поэтому и используется О нотация.

"теория не занимается привязкой к конкретной машине" - ок, теория оторвана от практики(Но на мой взгляд она ведь "круче" в некотором смысле, этот тот же DRY, это та же абстракция - борьба со сложностью из упомянутой вами SICP). Тему можно закрывать, я зря надрываюсь.

2) Согласен, но эквивалентны и "абсолютно никакой разницы", разные вещи? Или я все-таки чего-то не понимаю? Я просто против того, что нечто доказывают, приводят в пример упрощая(профанируя), потом генерализируют и в итоге.... Это вовсе становится неверным

Missing
+1

Ну давайте проверим=)

по опредлению:

f(x) принадлежит O(g(x)) существет некоторая константа C такая что для некоторого n большего n0 : | f(n) | < |C g(n) |

если f(n) принадлежит O(n) т.е g(n) = n => тогда существет некоторая константа C такая что для некоторого n большего n0 : | f(n) | < |C g(n) | => | f(n) | < |C n | => | f(n) | < |C n^ 2| (замечу в обратную сторону не верно) => f(n) принадлежит O(n^2)

Missing

Кормен(второе русское издание) стр. 91 3 абзац последнее предложение. Самое интересное, что этот же пример.

Missing

Годные примеры.

Missing
+4

Мое мнение на сей счет, и что я тут пытался донести, не стоит разделять теория\практика, нужно понимать что делаешь, в каком контексте делаешь, зачем делаешь, уметь оценить что сделал. Не стоит делать из теории самоцель и "божка", но и обратное неверно, нельзя говорить что она просто бессмысленные значки. Нужно знание теории(не значков, а смыслов, которые за значками), наши жизни коротки, мы не сможем пройти тот же путь, что все практикующие специалисты, но они и создавали теории, чтобы мы могли объять это все, пользоваться этим.

Теория в моем понимании(может я и ошибаюсь) это сублимированная коллективная практика, которая служит практике персональной(реальному миру). И да я видел, и на себе чувствовал то, что здесь называли "голой теорией", я тоже не понимал зачем мне эти все уравнения Фредгольма какого-то там типа, но это не проблема функана, это проблема моя и системы образования, что я не могу видеть исток (практику коллективную) из которой это пришло и где как (практику личную) это применимо.

А вопросов много и можно обсуждать их долго, а вывод один, мы(люди) просто очень плохо друг друга пониманием, может теория для того и есть, чтобы иметь "одно поле" и договорится "на берегу", что если я говорю А, то все понимают, что это А, а не Б?

Missing

Всякое бывает, но и по причине фреймворков отказывают, и у них тоже есть свой резон так делать.

Зарплаты

1700
Медиана зарплаты в ИТ за 3 месяца
НОЯ
ДЕК
ЯНВ
ФЕВ
МАР
АПР
1700
1575
1500
1900
1600
1500
Использование материалов, размещенных на сайте, разрешается при условии прямой гиперссылки на dev.by. Ссылка должна быть размещена в подзаголовке или в первом абзаце публикации.