Когда вы говорите о временной сложности, вы обычно говорите о худшем случае, поэтому вы считаете, что условие в if
истинно, а затем решаете сложность.
В данном коде псевдо выполняется do something
в половину времени, так что O(n/2) => O(n)
раз. Таким образом, do something
выполняется O (n) раз. Если do something
- линейное время, то фрагмент кода имеет сложность O(n^2)
.