kotonoha-pcgのブログ

dlang学習中です

忘れかけていたソートコード

 1年に上たってからの投稿です。そもそも私自身、継続して物事をやるとか、ブログを書く、言語学習をする、といったことにあまりたけていないというか、継続能力がないのかもしれません。。。


 それはさておき、ideoneのコード履歴を見ていあたら、面白いものが残してあったので記事にしたいと思います。

import std.stdio;
import std.algorithm;
import std.string;

void main() {
    auto arr=[1,1,4,5,1,4];
    
    auto dirt = sort!("a<b")(arr);
    
    foreach(def;dirt) {
        writef("%d ", def);
    }
    writeln("");
}

。。。うーん、きたないコードですね(笑)それはさておき、忘れかけていた配列のソートについて書きたいと思います。

この場合、出力として期待されるのは次の通りです。

1 1 1 4 4 5

つまり、sort!("a<b")の部分で指定した条件によってソート順序が変更される、ということになります。

先ほどのコードは昇順ソートでした。では降順ソートはどうすればよいのかというと、

先ほどの部分をsort!("a<b")にしてあげれば降順ソートとなって出力がなされます。

5 4 4 1 1 1 

という具合です。