Kursinhalt
Überblick Über Algorithmen und Datenstrukturen
Überblick Über Algorithmen und Datenstrukturen
Zeitkomplexität Grundlegender Array-Operationen
Die folgende Tabelle zeigt die Zeitkomplexität grundlegender Operationen für Arrays.
Suchoperation
Wie wir bereits besprochen haben und wie oben zu sehen ist, besteht der Hauptvorteil des Arrays darin, dass wir auf ein beliebiges Element in konstanter Zeit zugreifen können, wenn wir den Index dieses Elements im Array kennen. Aber wenn wir nicht wissen, nach welchem Element wir suchen, hat die Suchoperation eine Zeitkomplexität von O(N)
, da wir eine lineare Suche nach einem Element durchführen müssen.
Löschoperation
Wenn wir ein Element nach Index löschen möchten, können wir dies in konstanter Zeit tun.
Da Arrays jedoch mit kontinuierlichen Speicherblöcken dargestellt werden, bedeutet das Entfernen eines beliebigen Elements (außer dem letzten Element), dass wir mit "Löchern" in einer Datenstruktur umgehen müssen. Das nächste Bild veranschaulicht dies.
Um Löcher loszuwerden, müssen wir alle Elemente verschieben vom "Loch" bis zum Ende des Arrays, eine Position näher zum Anfang des Arrays. Und im schlimmsten Fall, wenn wir das erste Element entfernen, müssen wir alle anderen Elemente verschieben, und die Zeitkomplexität dieser Operation wird O(N)
sein. Im besten Fall haben wir eine Zeitkomplexität von O(1)
, wenn wir das letzte Element entfernen.
Einfügeoperation
Wie beim Löschen von Elementen müssen wir beim Einfügen eines Elements in ein Array möglicherweise vorhandene Elemente verschieben, um Platz für das neue Element zu schaffen. Im schlimmsten Fall, wenn wir am Anfang des Arrays einfügen, müssten wir das gesamte Array verschieben, was zu einer Zeitkomplexität von O(n)
führt. Wenn wir jedoch am Ende des Arrays einfügen, können wir das neue Element einfach ohne Verschiebung platzieren, was zu einer Zeitkomplexität von O(1)
führt.
Danke für Ihr Feedback!