On veut construire, à partir d’un ensemble de n élément, un nouvel ensemble de longueur n+1 comprenant un nouvel élément inséré à une position k. L’algorithme est formé de trois actions:
- Copie des k-1 premiers élément de l’ensemble dans le nouvel ensemble
- Insertion du nouvel élément à la position k dans le nouvel ensemble
- Copie des derniers élément de l’ensemble dans lle nouvel ensemble
Si la position n’existe pas l’algorithme renvoie un nouvel ensemble inchangé.
Remarques
- Pour simplifier les algorithmes présentés, on choisi de n’insérer qu’un seul élément à la fois.
- On retrouve ici le problème d’accès à un élément d’un ensemble par position.
- Les schémas présentés nécessitent la création d’une nouvel ensemble.
Objectif: -- Insérer un élément à une position donnée Paramètres: ensemble -- ensemble de départ nouvelEnsemble -- nouvel ensemble comprenant l'insertion d'un élément elementAinserer -- élément à insérer Résultat -- Le nouvel ensemble, si l'insertion n'est pas possible -- il contient les élément de l'ensemble de départ Remarque: -- L'ensemble de départ n'est pas modifié. -- Un nouvel ensemble est créé
Insertion d’un élément à une position
insererParPosition ensemble Ensemble , elementAinserer Element , position Entier -> Ensemble nouvelEnsemble <- EnsembleVide ensemble Si position < 1 <- ensemble Fin index <- 1 Initialiser ensemble Enumerer -> ensemble ET index < position index <- index + 1 element >- Element_Courant ensemble nouvelEnsemble <- element Element_Suivant ensemble Fin Si index = position nouvelEnsemble <- elementAinserer Enumerer ensemble element >- Element_Courant ensemble nouvelEnsemble <- element Element_Suivant ensemble Fin Fin <- nouvelEnsemble Fin
Traduction des algorithmes en : Swift, Julia
copyright A rchitectures A pplicatives A vancées A3-Soft