Logik:Klausuren/10.08.2004/1. Aufgabe

Aus Tudwiki
Version vom 8. Januar 2005, 19:22 Uhr von 141.30.212.167 (Diskussion)

(Unterschied) Nächstältere Version→ | Aktuelle Version (Unterschied) | ←Nächstjüngere Version (Unterschied)
Wechseln zu: Navigation, Suche

1. Aufgabenstellung

Schreiben Sie ein Prolog-Programm mergesort, welches 2 geordnete Listen von natürlichen Zahlen zu einer vereint.
Beispiele:

mergesort([6,8,12],[4,9,10,11],[4,6,8,9,10,11,12])
mergesort([3,3,8,9],[4,8],[3,3,4,8,8,9])

2. Lösung

mergesort([K],[],[K]).
mergesort([],[K],[K]).
mergesort([H1|R1],[H2|R2],[H1|R3]):- H1 < H2, mergesort(R1,[H2|R2],R3).
mergesort([H1|R1],[H2|R2],[H2|R3]):- H1 >= H2, mergesort([H1|R1],R2,R3).

3. Lösungsweg

4. Alternativen/Diskussion/Hinweise etc.


zur Klausur 10.08.2004
Kategorie Prolog-Aufgaben