Gegeben sei eine Liste von ganzen Zahlen a = [a0, a1, . . . , ak, ak+1, . . . an−1]. Wir wollen überprüfen,
ob es einen Index k gibt, sodass a0 ≤ a1 ≤ ... ≤ ak und ak ≥ ak+1 ≥... ≥ an−1. Eine Folge
mit dieser Eigenschaft heißt bitonisch.
1. Schreiben Sie ein Unterprogramm is_bitonic(a), dem eine Liste a von ganzen Zahlen übergeben wird und das den entsprechenden Wahrheitswert zurückgibt, ob die Folge
bitonisch ist oder nicht.
2. Schreiben Sie eine rekursive Funktion max_bitonic(a), die das maximale Element einer
bitonischen Folge bestimmen kann. Verwenden Sie als Lösungsansatz das Divide-and-
Conquer Prinzip (analog zur binären Suche).
Comment prefix | # |
---|---|
Given input | [1, 2, 3, 4, 5, 4, 3, 2, 1] [1, 2, 3, 4, 4, 4, 3, 2, 1] [-3, -2, -1, 0, -1, -2, -3] [-6, -3, -2, 1, -6] [1, 2, 4, 5, 4, 6] |
Expected output | True True True True False 5 4 0 1 |