[Rust]配列(array)をソートするには?

Rust

どうも、ちょげ(@chogetarou)です。

配列(array)をソートする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(array)をソートする方法は、昇順と降順で違います。

昇順

配列を昇順にソートするには、「arr.sort()」のように、配列(array)からsort()を呼び出します。

//arr=対象の配列
arr.sort();

上記のsort()は、呼び出した配列(array)を昇順(小さい順)にソートします。

使用例

fn main() {
    let mut numbers = [2, 5, 1, 4, 3];
    
    numbers.sort();
    
    println!("{:?}", numbers);
}
出力:
[1, 2, 3, 4, 5]

降順

配列を降順でソートする方法は、2つあります。

sort_by()

ひとつは、sort_by()を使う方法です。

まず、配列からsort_by()を呼び出します。

sort_by()の引数に2つの引数を持つクロージャーを指定します。

そして、クロージャーの式で第2引数からcmp()を呼び出し、cmp()の引数に第1引数を指定します。

//arr=対象の配列
arr.sort_by(|a, b| b.cmp(a));

上記のsort_by()は、呼び出した配列(array)を降順(大きい順)にソートします。

使用例

fn main() {
    let mut numbers = [2, 5, 1, 4, 3];
    
    numbers.sort_by(|a, b| b.cmp(a));
    
    println!("{:?}", numbers);
}
出力:
[5, 4, 3, 2, 1]

sort()

もうひとつは、sort()を使う方法です。

まず、配列からsort()を呼び出します。

そして、配列からreverse()を呼び出します。

//arr=対象の配列
arr.sort();
arr.reverse();

上記のsort()とreverse()は、呼び出した配列(array)を降順(大きい順)にソートします。

使用例

fn main() {
    let mut numbers = [2, 5, 1, 4, 3];
    
    numbers.sort();
    numbers.reverse();
    
    println!("{:?}", numbers);
}
出力:
[5, 4, 3, 2, 1]

まとめ

配列(array)をソートする方法は、昇順と降順で違います。

  • 昇順にソートする方法
    arr.sort();
  • 降順にソートする方法
    • arr.sort_by(|a, b| b.cmp(a));
    • arr.sort();
      arr.reverse();

コメント

タイトルとURLをコピーしました