Java задачки тесты
4.44K subscribers
163 photos
99 links
По вопросам рекламы: @anothertechrock


Если вы нашли ошибку в тесте - пишите @anothertechrock
加入频道
Вопрос с собеседования.

Почему доступ по элементу в массиве происходит за O(1)?

P.S ответ вечером

#собес #вопрос15
Ответ на #вопрос15

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

То есть это обозначение самого быстрого выполнения. Чтобы ответить на этот вопрос, нужно понять, что мы знаем о массивах?

Чтобы создать массив int, мы должны написать следующее:

int[] intArray = new int[100];

Из этой записи можно сделать несколько выводов:

1) При создании массива известен его тип. Если известен тип, то понятно, какого размера будет каждая ячейка массива.

2) Известно, какого размера будет массив.

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

Для машины это проще простого. У машины есть начало выделенной памяти, количество элементов и размер одной ячейки. Из этого понятно, что место для записи будет равно начальному месту массива + размер ячейки, умноженный на ее размер.