Lecture 3: Komplexitätsanalyse 2 Flashcards
(11 cards)
Warum wird bei der Effizienzanalyse nur das Verhalten für große n betrachtet?
Weil effiziente Algorithmen für große Instanzen relevant sind und konstante Faktoren durch das Maschinenmodell ohnehin abstrahiert werden.
Warum verzichtet man bei der Analyse auf konstante Faktoren?
Weil reale Laufzeiten nur bis auf konstante Faktoren abschätzbar sind und das Maschinenmodell diese nicht präzise abbildet.
Was bedeutet: 𝑓(𝑛) = Θ(𝑛𝑘), wenn f ein Polynom vom Grad k ist?
Dass f(n) asymptotisch genau wie 𝑛𝑘 wächst.
Was ist das Ergebnis des Lemmas über Polynome in Bezug auf die Wachstumsrate?
Jedes Polynom vom Grad k mit führendem Koeffizienten 𝑎𝑘 > 0 liegt in Θ(𝑛𝑘).
Wie wird „𝑔(𝑛) ∈ 𝑂(𝑓(𝑛))“ oft notiert?
Man schreibt auch: 𝑔(𝑛) = 𝑂(𝑓(𝑛)) , als Platzhaltergleichung.
Was gilt für die Beziehung von O-, Ω- und Θ-Notation?
Θ(𝑓(𝑛))=𝑂(𝑓(𝑛)) ∩ Ω(𝑓(𝑛))
Gib ein Beispiel für eine Funktion in 𝑜(𝑛).
logn ∈ o(n)
Gib ein Beispiel für eine Funktion in 𝜔(𝑛³).
n^5 ∈ ω(n³)
warum ist 𝑛³+𝑛 in 𝑂(𝑛³)
𝑛³+𝑛 = 𝑛³ + 𝑜(𝑛) = (1 + 𝑜(1)) 𝑛³ = 𝑂(𝑛³)
Wie wirken sich verschiedene Wachstumsraten in der Praxis aus?
Exponentielles oder faktorielles Wachstum führt schnell zu unpraktikabel langen Laufzeiten selbst bei kleinen n.
In welche “Laufzeitgruppen” Wird standartmäßig eingeordnet?
2^𝑛,
𝑛²,
𝑛 ln 𝑛,
𝑛,
ln 𝑛