Sie sind auf Seite 1von 1

Algorithmen und Datenstrukturen SS 2021

Aufgabenblatt 3
Aufgabe 7

Gegeben sei folgender Algorithmus zu Berechnung der maximalen Summe zweier Zahlen in einem
Array A[1, .., n]:
max = −∞
f o r i = 1 to n−1
f o r j = i +1 to n
i f A[ i ] + A[ j ] > max then max = A[ i ] + A[ j ]
return max

Zeigen Sie, dass dieser Algorithmus Laufzeit Θ(n2 ) besitzt.

Aufgabe 8

Formulieren Sie einen Algorithmus in Pseudocode, der feststellt wie oft die Zahl s im Array A[1, .., n]
maximal unmittelbar aufeinander folgt.

• Der Algorithmus soll eine Laufzeit von O(n) besitzen.


• Geben Sie eine passende Schleifeninvariante an und zeigen Sie damit die Korrektheit des
Algorithmus.
Zur Verdeutlichung der gewünschten Funktionsweise des Algorithmus folgen einige Beispiele:

Eingabe Ausgabe
A = [3, 7, 2, 2, 2, 6, 1, 2] und s = 2 3
A = [3, 7, 2, 2, 2, 6, 1, 2] und s = 7 1
A = [3, 7, 2, 2, 2, 6, 1, 2] und s = 5 0

Aufgabe 9

Sei A[1, .., n] ein Array mit n unterschiedlichen Zahlen. Wenn i < j ∧ A[i] > A[j], dann nennt
man dies eine Falschreihung. Formulieren Sie einen Algorithmus in Pseudocode, um die Anzahl der
Falschreihungen in einem Array zu berechnen. Die Worst-Case-Laufzeit soll O(n log n) betragen.

Tipp: Modifizieren Sie einen der Sortieralgorithmen aus der Vorlesung in geeigneter Weise.

1/1

Das könnte Ihnen auch gefallen