Дмитрий Подболотов честно говоря, у меня были сомнения по поводу print(i, a[i]).
Если бы было print(a[i]), то я бы даже не стал сомневаться, что O(1). Но, как видите, в принте по сути 2 операции, а не одна...
как вывод элемента по индексу дает сложность O(log (n)) ?
dmshar, неправильный акцент. Правильный акцент -- как вывод индекса дает сложность O(log (n)). Поскольку индекс пробегает значения от 0 до n-1, в нём в худшем случае log(N) цифр. Это, конечно, не имеет значения для типов фиксированной ширины, но чисто теоретически...