summaryrefslogtreecommitdiff
path: root/prolog/problems/sorting/quick_sort_2/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/sorting/quick_sort_2/common.py')
-rw-r--r--prolog/problems/sorting/quick_sort_2/common.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/prolog/problems/sorting/quick_sort_2/common.py b/prolog/problems/sorting/quick_sort_2/common.py
new file mode 100644
index 0000000..5eff940
--- /dev/null
+++ b/prolog/problems/sorting/quick_sort_2/common.py
@@ -0,0 +1,24 @@
+id = 125
+group = 'sorting'
+number = 32
+visible = True
+facts = None
+
+solution = '''\
+conc125([], L, L).
+conc125([H|T], L2, [H|L]) :-
+ conc125(T, L2, L).
+pivoting125(_, [], [], []).
+pivoting125(P, [H|T], [H|S], G) :-
+ H =< P,
+ pivoting125(P, T, S, G).
+pivoting125(P, [H|T], S, [H|G]) :-
+ H > P,
+ pivoting125(P, T, S, G).
+quick_sort([], []).
+quick_sort([Pivot|T], Sorted) :-
+ pivoting125(Pivot, T, Smaller, Greater),
+ quick_sort(Smaller, SortedSmaller),
+ quick_sort(Greater, SortedGreater),
+ conc125(SortedSmaller, [Pivot|SortedGreater], Sorted).
+'''