Просто чтобы завершить, "какая структура доступна за линейное время?" Структура Linked List доступна в линейном времени. Чтобы получить элемент n
, вам нужно пройти через n-1
предыдущие элементы. Вы знаете, как магнитофон или кассету VHS, куда идти до конца кассеты / VHS, вам пришлось долго ждать: -)
Массив больше похож на жесткий диск: каждая точка доступна в «постоянное» время :-)
По этой причине ОЗУ компьютера называется ОЗУ: оперативное запоминающее устройство. Вы можете перейти в любое место, если знаете его адрес, не просматривая всю память до этого места.
Некоторые люди говорили мне, что доступ к HD на самом деле не постоянный (где под доступом я подразумеваю «время, чтобы расположить голову и прочитать один сектор HD»). Я должен сказать, что я не уверен в этом. Я погуглил вокруг, и я не нашел никого, кто бы говорил об этом. Я действительно знаю, что время не является линейным, потому что оно все еще доступно случайным образом. В конце концов, если вы считаете, что HD-доступ недостаточно постоянен для вас (но что такое постоянный доступ к ОЗУ с учетом оптимизации кеша, предварительной выборки, локальности данных и компилятора?), Не стесняйтесь рассматривать предложение as Массив больше похож на USB-накопитель: каждая точка доступна в «постоянное» время: -)