Как отсортировать DList? - PullRequest
0 голосов
/ 28 февраля 2019

Как отсортировать DList и SList на месте?

В Python мы можем сделать list.sort (), в Java - Collections.sort (связанный список, новый Comparator ...)

Я не могу понять, как сделать то же самое в D.

1 Ответ

0 голосов
/ 01 марта 2019

Сортировка связанного списка неэффективна, поэтому 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
}

Открыть на run.dlang.io .

Или использовать sth.внутренне отсортированы как куча или RBTree:

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

Открыть на run.dlang.io .

...