如何排序DList?

时间:2019-02-28 14:59:08

标签: list sorting d

如何就地对DList和SList进行排序?

在Python中,我们可以执行list.sort(),在Java中-Collections.sort(linkedList,new Comparator ...)

我不知道如何在D中做同样的事情。

1 个答案:

答案 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
}

Open on run.dlang.io

或使用sth。本质上排序为堆或RBTree:

import std.algorithm, std.container, std.stdio;
void main()
{
    auto list = DList!int(2, 1, 3);
    list[].redBlackTree[].writeln;
}

Open on run.dlang.io