WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Пример развернутого связного списка.

Развёрнутый связный список — список, каждый физический элемент которого содержит несколько логических элементов (обычно в виде массива, что позволяет ускорить доступ к отдельным элементам).

Позволяет значительно уменьшить расход памяти и увеличить производительность по сравнению с обычным списком. Особенно большая экономия памяти достигается при малом размере логических элементов и большом их количестве — так, односвязный список из 10 тысяч четырёхбайтных целых чисел при четырёхбайтной же адресации памяти займет 40 тысяч байт под собственно значения, плюс 40 тысяч байт под адреса, итого 80 тысяч байт; если же объединить числа в 100 массивов по 100 элементов, расход памяти на адреса упадёт до 400 байт, и суммарный расход составит 40400 байт.

Прирост производительности достигается за счёт того, что большая часть операций проводится над относительно небольшими массивами, которые обычно целиком помещаются в кэш-памяти. Благодаря этому быстродействие программы может быть даже выше, чем при работе с обычными массивами. В развёрнутый список легко добавлять новые элементы — без необходимости переписывать весь массив, что является большой проблемой при работе с обычными массивами.

При реализации необходимо тщательно выбирать размер «блока» (количество элементов в массивах). При слишком большом размере блока список начинает страдать от тех же проблем, что и обыкновенный массив: долгая вставка элементов в начало или середину, долгое удаление элементов оттуда же, и т. п. При слишком маленьком — увеличивается расход памяти.

См. также

  • Кодирование CDR (en:CDR coding), сходная техника для уменьшения размеров списков и улучшения использования кешей.
  • Список с пропусками (skip list), вариация связных списков с быстрым обходом, но с медленной вставкой и удалением.
  • B-tree и T-tree, структуры данных, схожие с Р.с.с. (являются развернутыми бинарными деревьями)
  • XOR-связный список, двусвязный список, использующий 1 ячейку памяти для хранения двух указателей.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии