This exercise looks at sorting in Prolog.

Write Prolog clauses that define the predicate sorted(L), which is true if and only if list L is sorted in ascending order.

Write a Prolog definition for the predicate perm(L,M), which is true if and only if L is a permutation of M.

Define sort(L,M) (M is a sorted version of L) using perm and sorted.

Run sort on longer and longer lists until you lose patience. What is the time complexity of your program?

Write a faster sorting algorithm, such as insertion sort or quicksort, in Prolog.
Answer
Improve This Solution
View Answer