Skip to content

Rust:sort

springroll edited this page Dec 9, 2019 · 4 revisions

sort

Overview

配列、vector型のsort関数は配列の要素をソートする

Code

fn main(){
    let mut ary = [5,2,4,3,1];
    ary.sort();   // 昇順ソート(破壊的)
    println!("{:?}", ary);   // [1,2,3,4,5]

    let mut v = vec![5,2,4,3,1];
    v.sort_by(|x, y| x.cmp(y).reverse());  // 降順ソート(破壊的)
    println!("{:?}", v);    // [5,4,3,2,1]
}

Detail

sort

配列を昇順ソートする

sort_by

引数に関数またはクロージャをとることができる。 上記のコードでは、|x,y| x.cmp(y).reverse()のクロージャを与えている。cmpメソッドは比較可能なオブジェクトを渡すと、比較して、y<xy==xy>xかを判定し、対応する列挙型Orderingのメンバを返す。その後、reverse()によって結果を反転している。


他のソートについても追記予定

Clone this wiki locally