如何就地对DList和SList进行排序?
在Python中,我们可以执行list.sort(),在Java中-Collections.sort(linkedList,new Comparator ...)
我不知道如何在D中做同样的事情。
答案 0 :(得分:3)
对链接列表进行排序效率低下,这就是sort
需要随机访问范围作为输入的原因。您可能要使用具有直接内存访问权限的数组:
import std.algorithm, std.container, std.stdio;
void main()
{
auto list = DList!int(2, 1, 3);
list[].array.sort.release.writeln; // or directly start with an array
}
或使用sth。本质上排序为堆或RBTree:
import std.algorithm, std.container, std.stdio;
void main()
{
auto list = DList!int(2, 1, 3);
list[].redBlackTree[].writeln;
}