Logik:Klausuren/10.08.2004/1. Aufgabe
Aus Tudwiki
Version vom 8. Januar 2005, 19:22 Uhr von 141.30.212.167 (Diskussion)
Inhaltsverzeichnis
1. Aufgabenstellung[Bearbeiten]
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[Bearbeiten]
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).