Prolog具有独特的处理方式,尤其是因为实际上每个操作都涉及一种或另一种递归。

每种语言都具有的经典示例之一是将整数列表按升序排序。

什么是对随机整数列表进行排序的最佳方式(不使用太多内置谓词,当然排除了sort/2谓词)?

最佳答案

RomanBarták的Prolog编程站点提供了examples of different sort algorithms,以优化的quicksort结尾。

quick_sort2(List,Sorted):-q_sort(List,[],Sorted).
q_sort([],Acc,Acc).
q_sort([H|T],Acc,Sorted):-
    pivoting(H,T,L1,L2),
    q_sort(L1,Acc,Sorted1),q_sort(L2,[H|Sorted1],Sorted)

关于list - 在Prolog中对列表进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8429479/

10-12 13:10