Problem 1 finished. Problem 2 initialized.
This commit is contained in:
parent
d2e0b46111
commit
29b2d280b9
2 changed files with 50 additions and 0 deletions
25
hw3/hw3pr1.pl
Normal file
25
hw3/hw3pr1.pl
Normal 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
25
hw3/hw3pr2.pl
Normal 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).
|
Reference in a new issue