Série de 13 exercices algorithmiques en JavaScript, chacun accompagné d'une analyse de complexité temporelle.
- JavaScript (Node.js)
- Contrainte systématique : complexité temps O(n)
| Exercice | Description | Complexité |
|---|---|---|
daemon |
Vérifier qu'un tableau est partitionné autour d'un pivot k | O(n) |
open_closed |
Vérifier l'équilibrage de parenthèses, crochets et guillemets | O(n) |
yin_yang |
Variante de open_closed (parenthèses et crochets uniquement) | O(n) |
playset |
Détecter un doublon dans une chaîne de caractères | O(n) |
yulaw |
Supprimer les doublons d'une chaîne (résultat trié) | O(n) |
stormtroopers |
Filtrer les nombres apparaissant une seule fois dans un tableau | O(n) |
falafel |
Déterminer si une permutation de la chaîne est un palindrome | O(n) |
do_a_barrel_roll |
Rotation d'un tableau de k positions vers la gauche | O(n) |
set_et_match |
Two Sum — trouver deux nombres dont la somme vaut n | O(n) |
little_boxes |
Trier une chaîne ASCII par ordre de code (counting sort) | O(n) |
roger_rabbit |
Générer les représentations binaires de 1 à n | O(n) |
morning_sunshine |
Extraire les éléments supérieurs à tous ceux qui les suivent | O(n) |
tux |
Trouver l'index d'un pivot dans un tableau partitionné | O(n) |
Chaque exercice est dans son propre dossier :
<exercice>/
├── solution.js # Implémentation
└── README.md # Analyse de complexité temporelle
node <exercice>/solution.jsExercices réalisés dans le cadre du module TIC-ALG1 à l'ETNA. L'objectif était de maîtriser les structures de données classiques (pile, Set, Map, tableau de fréquences) pour résoudre des problèmes algorithmiques courants avec une contrainte stricte de complexité linéaire.