Лучший подход к этому - рассмотреть, сколько шагов предпримет алгоритм.
Если у вас есть n элементов, вы знаете, что внешний цикл будет выполняться как минимум n раз. Таким образом, оно должно быть не менее O (n).
Сколько раз внутренний цикл должен запускаться для каждого i? Увеличивается ли он, остается тем же или уменьшается по мере увеличения?
Понятно, что число шагов во внутреннем цикле будет уменьшаться по мере увеличения i, и, что более важно, оно уменьшается нелинейно. Итак, вы знаете, что это не так плохо, как O (n ^ 2).
Так что это где-то между O (n) и O (n ^ 2) .... немного больше анализа того, как уменьшение шагов во внутреннем цикле должно привести вас туда. РЕДАКТИРОВАТЬ: ... Хотя, похоже, что люди уже отдали его:)