TU Wien:Algorithmen und Datenstrukturen 2 VO (Raidl)/Laufzeiten und co

Aus VoWi
Zur Navigation springen Zur Suche springen

Laufzeiten Textsuche

[Bearbeiten | Quelltext bearbeiten]
Algorithmus Muster Angelegt Vergleiche Laufzeit
Naive Suche N-M+1 Θ(N∗M) o(N∗M)
Knuth-Morris-Pratt O(N+M)
Boyer-Moore O(N+M)\\

o(N+M) **


** Falls nur die last Verschiebung implementiert wird

Laufzeiten Rest

[Bearbeiten | Quelltext bearbeiten]

Randomisiertes Quicksort

[Bearbeiten | Quelltext bearbeiten]

o(n∗log(n))

Naiver Primzahltest

[Bearbeiten | Quelltext bearbeiten]

o((n))

o(s∗k3)

s...Anzahl der Tests

k...Anzahl der Bits der Primzahl

  • (Alle Skiplisten) Suche:O(log(n))
  • (Random) Einfügen: O(log(n)) - Löschen: O(log(n))
  • (Perfekte) Einfügen: O(log(n)+n)==O(n)- Löschen: O(log(n)+n)==O(n)

BEST CASE Szenarien

  • Suchen (Alle Skiplisten): Erstes Element wird gesucht - Höhe+2
  • (Random) Einfügen: Höhe+2 - Löschen: Höhe+2
  • (Perfekte) Einfügen: Ω(log(n) - Löschen: Ω(log(n)) ... weil nicht reorganisiert werden muss

Geometrische Algos

[Bearbeiten | Quelltext bearbeiten]

SSS...Scanline Status Struktur (Menge aktiver Segmente. geordnet nach der y-Koordinate des Schnittpunkts der aktuellen Scanline)
Ereignisstypen:

  • Segmentanfang
  • Segmentende
  • Schnittpunkt

k...Anzahl der Schnittpunkte

Iso-Orientierte Liniensegmente

[Bearbeiten | Quelltext bearbeiten]

o(n∗log(n)+R)
R...Anzahl der sich Schneidenden Segmente

Allgemeine Liniensegment

[Bearbeiten | Quelltext bearbeiten]

o((n+k)∗log(n))

2-Dimensionale Bereichssuche

[Bearbeiten | Quelltext bearbeiten]

o((n)+R)

K-Dimensionale Bereichssuche

[Bearbeiten | Quelltext bearbeiten]

o(k∗n(1−1/k)+R)

  • Einfügen/Suchen/Entfernen: O(m)

m ... Höhe des Baumes

  • Einfügen: Ω(m) und O(m∗|A|)
  • Suchen: O(m)
  • Entfernen: O(m∗|A|)

m ... länge des einzufügenden Wortes
A ... das verwendete Alphabet

  • Suchen: O(m∗|A|)
  • Suchen: O(m)