Rust でベクトルをソートする

Muhammad Adil 2023年6月21日
  1. Rustでベクトルをソートする関数
  2. Rustでベクトルをソートするアルゴリズム
Rust でベクトルをソートする

この記事では、Rust でベクトルをソートする方法について説明します。

Rustでベクトルをソートする関数

Rust 標準ライブラリは、Rust でベクトルを並べ替えるためのいくつかの価値のある型を提供します。 Rust でのソートには、sort_by() 関数と sort() 関数の 2つの方法があります。

sort_by() 関数は、指定されたキー、整数または文字列に従ってベクターを並べ替えます。一方、sort() 関数は、要素の順序に従ってベクターを並べ替えます。 sort() 関数はベクトルを取得し、ソートして返します。

デフォルトでは、値は昇順でソートされます。 並べ替えは、比較演算子 (<) の前に reverse キーワードを追加することで、降順で実行できます。

Rustでベクトルをソートするアルゴリズム

Rust が使用するソートアルゴリズムは QuickSort と呼ばれます。 ベクトルを 2つの半分に分割し、並べ替える要素がなくなるまで各半分を再帰的に並べ替えます。

このセクションでは、Rust でベクトルをソートする方法を学びます。

  1. 最初のステップは、整数のベクトルを作成することです。
  2. 2 番目のステップは、ベクター内の要素を値でソートし、昇順で格納することです。
  3. 3 番目のステップは、別の関数を実装することです。この関数は、2つのベクトルを取り、ソートされた場合に 1つのベクトルが別のベクトルで等しい値を見つけることを表す整数を返します。
  4. 4 番目のステップは、指定された配列内の要素のすべてのペアに対してこの関数を呼び出し、インデックス番号で並べ替えられた並べ替え済みの配列を返すことです。

次の例では、sort() 関数を使用してベクトル整数をソートします。

コード:

fn main() {
    let mut vec = vec![100, 53, 12, 24, 67];
    vec.sort();
    assert_eq!(vec, vec![12, 24, 53, 67, 100]);
  println!("{:?}", vec);
}

出力:

[12, 24, 53, 67, 100]

実行コード

この次の例では、sort_by() 関数を使用して、Rust で Float ベクトルをソートします。

コード:

fn main() {
    let mut vec = vec![1.2, 2.15, 7.5, 1.234, 5.0];
    vec.sort_by(|a, b| a.partial_cmp(b).unwrap());
    assert_eq!(vec, vec![1.2, 1.234, 2.15, 5.0, 7.5]);
    println!("{:?}", vec);
}

出力:

[1.2, 1.234, 2.15, 5.0, 7.5]

実行コード

著者: Muhammad Adil
Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook