Для подсчета количества операций также известно как analyze the algorithm complexity
.Идея состоит в том, чтобы иметь общее представление о том, сколько операций в худшем случае необходимо для выполнения алгоритма на входе размера N, что дает верхнюю границу вычислительных ресурсов, необходимых для этого алгоритма.И поскольку каждая операция сама по себе (например, умножение или сравнение) является конечной операцией и требует детерминированного времени (даже если она может быть разной на разных машинах), чтобы понять, насколько хорош или плох алгоритм, особенно по сравнению сдругие алгоритмы, все, что вам нужно знать, это приблизительное количество операций.
Вот пример с пузырьковой сортировкой.Допустим, у вас есть массив из двух чисел.Для сортировки вам нужно сравнить оба числа и, возможно, обменять их.Поскольку сравнение и обмен являются отдельными операциями, точное время их выполнения минимально и само по себе не важно.Таким образом, можно сказать, что при N = 2 количество операций составляет O (N) = 1.Однако для трех чисел вам понадобятся три операции в худшем случае - сравните первую и вторую и, возможно, обменяйте их, затем сравните второе и третье и обменяйте их, затем снова сравните первую со второй,Продолжая обобщать пузырьковую сортировку, вы обнаружите, что потенциально для сортировки N чисел необходимо выполнить N операций для первого числа, N-1 для второго и так далее.Другими словами, O (N) = N + (N-1) + ... + 2 + 1 = N * (N-1) / 2, что для достаточно большого N можно упростить до O (N) = N^ 2.
Конечно, вы могли бы просто обмануть и узнать в сети число O (N) для каждого из трех алгоритмов сортировки, но я бы настоятельно призвал вас потратить время и попытаться найтисначала с этим номером.Даже если вы ошиблись, сравнение вашей оценки и того, как вы ее получили, с фактическим способом оценки их сложности поможет вам лучше понять процесс анализа сложности конкретного программного обеспечения, которое вы пишете в будущем.