В частности: заданный хэш (или индекс массива), как машина получает данные в постоянное время?
Мне кажется, что даже прохождение всех других мест памяти (или любого другого) займет некоторое время, равное количеству пройденных местоположений (таким образом, линейное время). Сотрудник попытался отважно объяснить это мне, но должен был сдаться, когда мы дошли до контуров.
Пример:
my_array = new array(:size => 20)
my_array[20] = "foo"
my_array[20] # "foo"
Доступ к "foo" в позиции 20 постоянный, потому что мы знаем, в каком ведре "foo". Как мы волшебным образом добрались до этого ведра, не пройдя всех остальных на этом пути? Чтобы попасть в дом № 20 на блок, вам все равно придется пройти мимо другого 19...