Скажем, у нас есть несортированный массив и связанный список. В худшем случае при поиске элемента для обеих структур данных будет O (n), но мой вопрос:
Будет ли массив по-прежнему работать быстрее из-за использования пространственной локальности в кеше или кеш использует локальную область, позволяющую связанным спискам быть так же быстро, как любой массив?
Мое понимание массива заключается в том, что при доступе к элементу этот блок памяти и многие из окружающих блоков затем передаются в кеш, что позволяет значительно быстрее получать доступ к памяти.
Мое понимание связанного списка состоит в том, что, поскольку путь, который будет использоваться для перемещения по списку, является предсказуемым, тогда кеш будет использовать это и все еще хранить соответствующие блоки памяти, даже если узлы списка могут быть далеко друг от друга в пределах кучи.