Skip to content

Files

Latest commit

author
x-VEspit
May 25, 2024
0fe730e · May 25, 2024

History

History
207 lines (124 loc) · 7.25 KB

README.md

File metadata and controls

207 lines (124 loc) · 7.25 KB

(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.