Sortieren Sie einen Vektor in Rust

Muhammad Adil 21 Juni 2023
  1. Funktionen zum Sortieren von Vektoren in Rust
  2. Algorithmus zum Sortieren eines Vektors in Rust
Sortieren Sie einen Vektor in Rust

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

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