summaryrefslogtreecommitdiff
path: root/prolog/problems/sorting/quick_sort_2/common.py
blob: 9c2b26111efc3a9a3ca3de55cecbcd38cb475c9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# coding=utf-8

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).
'''