время сжигать мосты, время искать ответ и менять сгоревшие лампочки
Сегодня все утро пыталась довести до ума пост о вычислительной сложности. Но все же это сложновато объяснить без самого кода. Обычно вычислительную сложность объясняют сразу на коде, подсчетом элементарных операций, потом устремляя входные данные к бесконечности (привет пределам!) и...вот как это все объяснить? Для меня тема вычислительной сложности всегда была мутная, я где-то на подсознательном уровне примерно определяю асимптотику и всю жизнь пользовалась только обозначением О-большое. А стала тут копаться... Тема то очень интересная! Очень важная и базовая. Ну как теория алгоритмов без вычислительной сложности? Без временной и емкостной сложностей?

А тут стала писать пост, думая о том, ну чего тут сложного? Есть входные данные, есть какая-то зависимость, есть предельная граница худшего варианта, что тут объяснять? Все предельно просто, особенно если буду рассказывать в контексте той задачи, которую разобрали в прошлый раз. А тут вдруг приплелись комбинаторика, математический анализ и теория вероятностей. И вот ту понимаешь, что во-первых плаваешь в теме, а во-вторых вот тебе и образование - все университетские предметы все это время были связаны. Не, это и так понятно было, но я никогда не сталкивалась с этим вплотную.

А еще я думала, что это будет проходным материалом, а потом начнется самая жара, когда затронем P и NP - классы. Эх, все же логично начинать изучать алгоритмистику с сортировок, поиска и представления данных. Даже на тех же сортировках вычислительную сложность объяснить намного легче, чем на NP-трудной задаче =___=

Комментарии
04.01.2017 в 12:12

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

Неплохое для себя описание сложности нашёл в книге «Алгоритмы. Руководство по разработке» Стивен Скиена.
Ещё в «Алгоритмы. Теория и практическое применение» Стивенс Род - там, кстати, и про способ определить: является ли связный список замкнутым, или нет (задачка из Гугла).
04.01.2017 в 12:14

Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе.
Я в свое время вела курс по алгоритмам у 2-курсников, и один поток матан вообще не знал. Мы очень хардкорно разбирали возрастания функций без матана...
04.01.2017 в 12:58

If you think you can or you think you can't, you're right
Вы все тут такие умные и такие молодцы :nechto: *села послушать*
10.01.2017 в 13:22

время сжигать мосты, время искать ответ и менять сгоревшие лампочки
Юрий Рэйн, да, ты прав. Но я все равно в некоторые вещи хочу углубиться. Да и вообще решила все же начать с самого начала, а не тупо ворваться в теорию графов :D

Падмелина, жесть)) Вот ладно я, уже почти старуха, которая матанчик благополучно забыла (ну, судя по опыту, могу быстро вспомнить), но у второкурсников то! Должно быть все свежо в памяти :)

Cherrished, мои мысли о вас всех, на самом деле^^