Problem 1 finished. Problem 2 initialized.

This commit is contained in:
Alex Huddleston 2017-11-11 21:08:10 -06:00
parent d2e0b46111
commit 29b2d280b9
2 changed files with 50 additions and 0 deletions

25
hw3/hw3pr1.pl Normal file
View file

@ -0,0 +1,25 @@
my_sort([], Sorted2, Sorted2).
my_sort(Unsorted, Sorted, Sorted2) :-
get_max(Unsorted, Max, LessList),
append(Sorted, [Max], NewSorted),
my_sort(LessList, NewSorted, Sorted2).
my_sort(Unsorted, Sorted) :-
my_sort(Unsorted, [], ReverseSorted),
reverse(ReverseSorted, Sorted),
write(Sorted).
get_max([], Max, LessList, Max, LessList).
get_max(Unsorted, X, Unsorted2, Max, LessList) :-
select(Y, Unsorted, Rest),
(X > Y,
append(Unsorted2, [Y], NewList),
get_max(Rest, X, NewList, Max, LessList);
append(Unsorted2, [X], NewList),
get_max(Rest, Y, NewList, Max, LessList)).
get_max(Unsorted, Max, LessList) :-
select(X, Unsorted, Unsorted2),
get_max(Unsorted2, X, [], Max, LessList).

25
hw3/hw3pr2.pl Normal file
View file

@ -0,0 +1,25 @@
my_sort([], Sorted2, Sorted2).
my_sort(Unsorted, Sorted, Sorted2) :-
get_max(Unsorted, Max, LessList),
append(Sorted, [Max], NewSorted),
my_sort(LessList, NewSorted, Sorted2).
my_sort(Unsorted, Sorted) :-
my_sort(Unsorted, [], ReverseSorted),
reverse(ReverseSorted, Sorted),
write(Sorted).
get_max([], Max, LessList, Max, LessList).
get_max(Unsorted, X, Unsorted2, Max, LessList) :-
select(Y, Unsorted, Rest),
(X > Y,
append(Unsorted2, [Y], NewList),
get_max(Rest, X, NewList, Max, LessList);
append(Unsorted2, [X], NewList),
get_max(Rest, Y, NewList, Max, LessList)).
get_max(Unsorted, Max, LessList) :-
select(X, Unsorted, Unsorted2),
get_max(Unsorted2, X, [], Max, LessList).