list - 在 Prolog 中对列表进行排序

标签 list sorting prolog

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

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

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

最佳答案

Roman Barták 的 Prolog Programming 站点给出了 examples of different sort algorithms ,以优化的快速排序结束。

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/

相关文章:

bash - 从 bash 调用时 screen 以不同方式转义

Python-将字符串化列表转换回列表

java - 如何仅在 Java 中将相同长度的 BitSet 设置为 true 的索引处对 int[] 进行排序

prolog - Prolog中的DAG遍历+成本

networking - Prolog 中的网络模块化优化

Java流按2个字段排序

java - 当获取 request.getParameter (""时,字符串无法转换为 ArrayList<String> )

java - 在 Kotlin 中,为什么 mutableListOf 返回一个 java.util.ArrayList 的实例,而 listOf 返回一个 java.util.Arrays$ArrayList 的实例?

python - 带集合的列表的不同列表

java - 根据值对 Map 内的 HashMap 进行排序