Core Concepts
Verkettete Listen sind in den meisten Fällen weniger effizient als Array-basierte Datenstrukturen, insbesondere in Bezug auf Speicherverbrauch und Ausführungsgeschwindigkeit.
Abstract
Die Studie vergleicht verschiedene Implementierungen von verketteten Listen (NoCacheList, LinkedList, SingleList) mit Array-basierten Alternativen (ArrayList, ArrayRing, ArrayBlock).
Die Ergebnisse zeigen, dass Array-basierte Datenstrukturen in den meisten Fällen deutlich bessere Leistung bieten als verkettete Listen. Insbesondere ArrayBlock, eine neue Array-basierte Datenstruktur, schneidet in einer Vielzahl von Operationen sehr gut ab.
Die Autoren argumentieren, dass die theoretischen Vorteile von verketteten Listen in der Praxis oft nicht relevant sind, da moderne Computer genug Arbeitsspeicher und Rechenleistung bieten, um effizientere Array-basierte Implementierungen zu nutzen. Sie empfehlen daher, verkettete Listen in den meisten Fällen zu vermeiden.
Stats
Die Komplexität der Einfüge- und Löschoperationen ist bei verketteten Listen in der Regel O(1), während sie bei Array-basierten Strukturen wie ArrayList und ArrayRing im Durchschnitt O(N/2) beträgt.
Bei ArrayBlock hängt die Komplexität nicht von der Listengröße N ab, sondern ist direkt mit der konstanten Blockgröße verbunden.
Quotes
"Verkettete Listen haben lange als wertvolles Lehrmittel im Programmieren gedient. Allerdings stellt sich die Frage: Sind sie in der täglichen Programmpraxis wirklich praktisch?"
"In den meisten Fällen scheinen Array-basierte Datenstrukturen eindeutige Vorteile zu bieten, insbesondere in Bezug auf Speichereffizienz und, noch wichtiger, Ausführungsgeschwindigkeit."