\documentclass{bschlangaul-aufgabe} \bLadePakete{java,mathe} \begin{document} \bAufgabenMetadaten{ Titel = {Komplexität}, Thematik = {Methode „magicStaff()“}, Referenz = AUD.Algorithmische-Komplexitaet.Methode-magicStaff, RelativerPfad = Module/30_AUD/50_Algorithmische-Komplexitaet/Aufgabe_Methode-magicStaff.tex, ZitatSchluessel = aud:e-klausur, ZitatBeschreibung = {Aufgabe 5}, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Algorithmische Komplexität (O-Notation)}, } Welche Komplexität hat das Programmfragment?\index{Algorithmische Komplexität (O-Notation)} \footcite[Aufgabe 5]{aud:e-klausur} \bJavaDatei[firstline=5,lastline=17]{aufgaben/aud/komplexitaet/Komplexitaet} \noindent Bestimmen Sie in Abhängigkeit von $n$ die Komplexität des Programmabschnitts im \begin{enumerate} \item Best-Case. \begin{bAntwort} $\mathcal{O}(1)$: Wenn die erste Zahl im Feld \bJavaCode{array} ohne Rest durch 3 teilbar ist, wird sofort aus der for-Schleife ausgestiegen (wegen der \bJavaCode{break} Anweisung). \end{bAntwort} \item Worst-Case. \begin{bAntwort} $\mathcal{O}(n^2)$: Wenn keine Zahl aus \bJavaCode{array} ohne Rest durch 3 teilbar ist, werden zwei Schleifen (\bJavaCode{for} und \bJavaCode{do while}) über die Anzahl \bJavaCode{n} der Elemente des Felds durchlaufen. \end{bAntwort} \end{enumerate} \end{document}