HOWTO · Rust

Sortieren Sie einen Vektor in Rust

Die Funktionen sort_by() und sort() beziehen sich auf den Vektor und geben ihn sortiert zurück. Die Werte sind standardmäßig aufsteigend sortiert.

Wir werden in diesem Artikel besprechen, wie Vektoren in Rust sortiert werden.

Funktionen zum Sortieren von Vektoren in Rust

Die Rust-Standardbibliothek bietet einige wertvolle Typen zum Sortieren von Vektoren in Rust. Es gibt zwei Sortiermöglichkeiten in Rust: die Funktion sort_by() und die Funktion sort().

Die Funktion sort_by() sortiert den Vektor nach dem angegebenen Schlüssel, einer Ganzzahl oder einem String, während die Funktion sort() den Vektor nach der Reihenfolge seiner Elemente sortiert. Die Funktion sort() übernimmt den Vektor und gibt ihn sortiert zurück.

Die Werte sind standardmäßig aufsteigend sortiert. Die Sortierung kann in absteigender Reihenfolge erfolgen, indem vor dem Vergleichsoperator (<) das Schlüsselwort reverse hinzugefügt wird.

Algorithmus zum Sortieren eines Vektors in Rust

Der von Rust verwendete Sortieralgorithmus heisst QuickSort. Es funktioniert, indem der Vektor in zwei Hälften geteilt wird und dann jede Hälfte rekursiv sortiert wird, bis keine Elemente mehr zum Sortieren übrig sind.

In diesem Abschnitt lernen wir, wie man einen Vektor in Rust sortiert.

  1. Der erste Schritt besteht darin, einen Vektor aus ganzen Zahlen zu erstellen.
  2. Der zweite Schritt besteht darin, die Elemente im Vektor nach ihren Werten zu sortieren und in aufsteigender Reihenfolge zu speichern.
  3. Der dritte Schritt besteht darin, eine andere Funktion zu implementieren, die zwei Vektoren nimmt und eine Ganzzahl zurückgibt, die darstellt, wo ein Vektor bei Sortierung einen gleichen Wert in einem anderen Vektor finden würde.
  4. Der vierte Schritt besteht darin, diese Funktion für jedes Elementpaar in einem gegebenen Array aufzurufen und ein sortiertes Array zurückzugeben, das nach der Indexnummer sortiert wurde.

Im folgenden Beispiel verwenden wir die Funktion sort(), um Vektor-Ganzzahlen zu sortieren.

Code:

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

Ausgang:

[12, 24, 53, 67, 100]

Code ausführen

Dieses nächste Beispiel verwendet die Funktion sort_by(), um die Float-Vektoren in Rust zu sortieren.

Code:

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);
}

Ausgang:

[1.2, 1.234, 2.15, 5.0, 7.5]

Code ausführen