Или, другими словами, почему доступ к произвольному элементу в массиве занимает постоянное время (вместо O(n)
или какое-то другое время)?
Я отправил свое сердце в поисках ответа на этот вопрос и не нашел очень хорошего, поэтому я надеюсь, что один из вас сможет поделиться с вами своим низким уровнем знаний.
Просто, чтобы дать вам представление о том, как низкий ответ, на который я надеюсь, я скажу вам, почему я ДУМАЮ, что это занимает постоянное время.
Когда я говорю array[4] = 12
в программе, я действительно просто сохраняю бит-представление адреса памяти в регистр. Этот физический регистр в аппаратном обеспечении включит соответствующие электрические сигналы в соответствии с представленным им битовым представлением. Эти электрические сигналы тогда каким-то волшебным образом (надеюсь, кто-то может объяснить магию) получить доступ к правильному адресу памяти в физической/основной памяти.
Я знаю, что это было грубо, но это было просто для того, чтобы дать вам представление о том, какой ответ я ищу.
(примечание редактора: из комментариев, полученных позже, он понимает, что вычисления адресов занимают постоянное время и просто удивляются, что происходит после этого.)