big-O notation - вопрос №327077

здравствуйте. 
подскажите, как можно выполнить оценивание метода по big-O notation? т.е. у меня есть программа и мне нужно подсчитать количество операций (время), требуемое на ее выполнение и использовать при этом big-O notation.

программа на c#

11.08.12
1 ответ

Лучший ответ по мнению автора

«О большое» это оценка сложности (времени исполнения) алгоритма в зависимости от некоего параметра

http://ru.wikipedia.org/wiki/O-%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F

 

условно можно сказать что О это типовой набор операций, который придется повтороть f(n) раз, для нахождения результата алгоритма

наиболее иллюстративный пример это описание трудоемкости алгоритмов факторизации целых чисел в зависимости от их разрядности

http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%86%D0%B5%D0%BB%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB  

менее впечатляющий, но не менее часто встречающийся пример — оценка скорости алгоритмов сортировки в зависимости от размеров массива

http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8 

можно сказать что О это операция. но надо понимать что это не оператор программы, это может быть весма сложный набор операторов языка программирования

это одна повторяемая операция, это одна итерация в циклическом алгоритме

не имеет значения язык на котором Вы реализуете алгоритм

имеет значение количество циклов его повторения в зависимости от какой то численной характеристики входных данных и формула, которая позволяет предсказать сколько раз надо выполнить циклические проходы алгоритма (в том числе это могут быть разные по функциональности ветви алгоритма или произведение количества вложенных циклов)

при этом формула может быть как строго доказанной, так и эмпирической, если доказательство не известно

так что Ваша задача носит в первую очередь математический характер а не програмно-технический

12.08.12
Лучший ответ по мнению автора
Посмотреть всех экспертов из раздела Технологии > .Net/C#
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store