Skip to content

Voilà une liste d'algorithmes courants, implémentés en Rust. Peut éventuellement servir pour préparer des cours sur ce langage.

License

Notifications You must be signed in to change notification settings

v-espitalier/algorithmes-en-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(English below)

algorithmes-en-rust

Voilà une recueil d'algorithmes courants, implémentés en langage Rust, pour se faire une idée du langage. Peut éventuellement servir pour préparer des cours.

Exemples d'algorithmes implémentés

Téléchargement / utilisation

Pas de dépendances externes, autres que rust lui_même (voir: https://www.rust-lang.org/fr/tools/install).

# Alternative à git: $ wget https://github.com/v-espitalier/algorithmes-en-rust/archive/refs/heads/main.zip
git clone https://github.com/v-espitalier/algorithmes-en-rust
cd algorithmes-en-rust
cargo run

Algorithmes classiques:

Algorithmes de tri:

(Deux implémentations sont parfois proposées, dont la variante est générique et utilise les traits de Rust, afin de pouvoir comparer les différents codes et de disposer d'une implémentation plus simple qui trie uniquement les entiers.)

Algorithmes associés aux probabilités ou partiellement aléatoires

  • Générateur aléatoire MINSTD alias 'minimum standard' (de Park et Miller, 1988)

https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9rateur_congruentiel_lin%C3%A9aire

https://en.wikipedia.org/wiki/Lehmer_random_number_generator

Algorithmes liés au graphes

Algorithmes divers

https://fr.wikipedia.org/wiki/Fractale

https://fr.wikipedia.org/wiki/Flocon_de_Koch

Fonctionnalités du langage Rust testées:

  • Fonctions génériques basées sur les traits: Voir tri_variances.rs

  • Création d'un nouveau type de données (rationnels), et implémentation des traits standards pour l'arithmétique: Voir rationnels.rs

  • Multithreading: Cf recherche_premiers_multithreading() dans divers.rs

  • Macro unit tests, alias tests de régression: Voir tests.rs

  • Code en assembleur inséré dans du Rust: Cf pgcd_asm() dans divers.rs



algorithmes-en-rust (English)

Here's a collection of common algorithms implemented in Rust, to give you an idea of the language. Can also be used to prepare courses.

Examples of implemented algorithms

Download / use

No external dependencies, other than rust itself (see: https://www.rust-lang.org/fr/tools/install).

# Alternative to git: $ wget https://github.com/v-espitalier/algorithmes-en-rust/archive/refs/heads/main.zip
git clone https://github.com/v-espitalier/algorithmes-en-rust
cd algorithmes-en-rust
cargo run

Initiation algorithms:

Sorting algorithms:

(Two implementations are sometimes proposed, the variant of which is generic and uses Rust features, so that different codes can be compared and a simpler implementation that sorts integers only is available).

Algorithms associated with probability or partial randomization

  • MINSTD random generator aka 'minimum standard' (de Park and Miller, 1988)

https://en.wikipedia.org/wiki/Linear_congruential_generator

https://en.wikipedia.org/wiki/Lehmer_random_number_generator

Miscellaneous algorithms

Rust language features tested:

  • Generic trait-based functions: See tri_variances.rs

  • Creation of a new data type (rationals), and implementation of basic traits for arithmetics: See rationals.rs

  • Multithreading: See recherche_premiers_multithreading() in divers.rs

  • Macro unit tests, a.k.a. regression tests: See tests.rs

  • Assembly code inserted in Rust: Cf pgcd_asm() in divers.rs

Licence

Le code source de ce dépôt est publié sous license MIT. Voir LICENSE pour plus d'informations.

The source code of this repository is released under the MIT license. See LICENSE for more information.

About

Voilà une liste d'algorithmes courants, implémentés en Rust. Peut éventuellement servir pour préparer des cours sur ce langage.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages