Графические приложения часто представляют собой изображения как плоские массивы, а не двумерные массивы. Если я не ошибаюсь, это делается потому, что плоские массивы намного быстрее, поскольку они компактны и избегают промахов в кэше. Пример:Что такое быстрое, компактное представление древовидных структур, предотвращающее промахи кеша?
dimensional_array = [[1,2],[3,4],[4,5]]
four = dimensional_array[1,1]
flat_array = [1,2,3,4,5,6]
four = flat_array[1 + 2*1]
Есть ли аналогичное (или нет) представление деревьев свободной формы, которое позволяет получить такой же прирост производительности?
free_form_tree = [[1,2,3],4,5,[[6,7],8]]
Вы понимаете, что на большинстве языков реализованы 1D и 2D массивы с точно такой же памятью и временем доступа? Вы можете думать о вложенных и/или зубчатых массивах вместо 2D-массивов. – RBarryYoung
@RBarryYoung Это верно для многих языков, но не для Java, например - у него только вложенные массивы. –