Comment trier un vecteur dans Rust?

Quelle est la méthode actuellement recommandée pour trier les valeurs dans un vecteur?

44
demandé sur Tshepang 2014-11-10 06:54:56

2 réponses

Une tranche mutable d'éléments avec un ordre total a un sort méthode.

, Car Vec<T> implémente DerefMut<[T]>, vous pouvez appeler cette méthode directement sur un vecteur, vector.sort() œuvres.

52
répondu Chris Morgan 2015-05-24 21:32:00

Alors que les solutions proposées ci-dessus peuvent trier les vecteurs d'entiers, j'ai eu des problèmes dans le tri des vecteurs de flotteurs.

La solution la plus simple était d'utiliser la caisse quickersort, qui peut également trier les flotteurs. La caisse quickersort peut également trier d'autres vecteurs de tout type et implémente également des méthodes pour trier à l'aide de comparaisons (sort_by).

Voici le code Rust:

extern crate quickersort;
//let's create the vector with the values
let mut vals = Vec::new();
vals.push(31.2);
vals.push(31.2);
vals.push(10.0);
vals.push(100.4);
vals.push(4.1);
quickersort::sort_floats(&mut vals[..]); // sort the vector
0
répondu Salvatore Cosentino 2017-09-19 09:02:25