在prolog中,如何使用第二个元素作为轴心来编写快速排序?

在prolog中,如何使用第二个元素作为轴心来编写快速排序?,prolog,quicksort,Prolog,Quicksort,在我的示例中,我使用了给定列表的第一个(最左边)元素作为轴心 qsort([],[]):- !. qsort([Pivot|Tail],Sorted):- split(Pivot,Tail,Less,Greater), qsort(Less,SortedLess), qsort(Greater,SortedGreater), append(SortedLess,[Pivot|SortedGreater],Sorted). split

在我的示例中,我使用了给定列表的第一个(最左边)元素作为轴心

qsort([],[]):- !.
qsort([Pivot|Tail],Sorted):-
        split(Pivot,Tail,Less,Greater),
        qsort(Less,SortedLess),
        qsort(Greater,SortedGreater),
        append(SortedLess,[Pivot|SortedGreater],Sorted).
split(_,[],[],[]).
split(Pivot,[X|T],[X|Less],Greater):-
        X=<Pivot,split(Pivot,T,Less,Greater).
split(Pivot,[X|T],Less,[X|Greater]):-
        X>Pivot,split(Pivot,T,Less,Greater).
qsort([],[]):-!。
qsort([Pivot | Tail],已排序):-
拆分(枢轴、尾部、较小、较大),
qsort(较少,无分拣),
qsort(更大,分类创建器),
追加(无分拣,[Pivot | SortedCreate],已分拣)。
拆分(u,[],[],[])。
拆分(枢轴、[X | T]、[X |小于]、更大):-
X=支点,拆分(支点,T,较小,较大)。

但是,我想知道如何使用第二个元素作为轴

这是否回答了您的问题@joel76现在有另一个条目,有一个答案,我们可以将其作为副本关闭。(还有你提议的那个)。