どうも、ちょげ(@chogetarou)です。
配列(array)をソートする方法を紹介します。
方法
配列(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();
コメント