Algorithme : Tri de SHELL du tableau des entiers

Bac SC 30-08-26
15 0

Plan de tutoriel

1- Principe du tri de SHELL

2- Algorithme du tri de SHELL

3- Programme Python

 

Principe du tri de SHELL

Le tri de Shell est une amélioration du tri par insertion. Son principe consiste à comparer et à déplacer des éléments qui ne sont pas forcément voisins. Pour cela, on utilise une valeur appelée intervalle p, qui représente le nombre de positions séparant deux éléments comparés.

Au début de l'algorithme, on choisit un grand intervalle p. Les éléments séparés par cet intervalle sont comparés et déplacés afin de rapprocher progressivement les éléments de leur position correcte. Cela permet de déplacer rapidement les éléments qui sont très éloignés de leur place finale.

Ensuite, l'intervalle p est réduit progressivement. Dans cet algorithme, il est calculé à partir de la suite 1, 4, 13, 40, ..., puis réduit en le divisant par 3. Le tableau est donc trié plusieurs fois avec des intervalles de plus en plus petits.

À chaque intervalle, l'algorithme utilise un fonctionnement similaire au tri par insertion. L'élément e est mémorisé, puis les éléments plus grands situés à p positions avant sont décalés vers la droite. L'élément e est ensuite placé à la position où il doit être inséré.

Enfin, lorsque p = 1, l'algorithme effectue un dernier passage qui correspond à un tri par insertion classique. Comme les éléments sont déjà en grande partie ordonnés grâce aux passages précédents, ce dernier passage est beaucoup plus rapide. Le tableau est alors complètement trié dans l'ordre croissant.

 

Algorithme du tri de SHELL

Dans cet algorithme, On va utiliser deux fonctions et trois procédures :

- la fonction saisie

- la procédure remplir

- la procédure SHELL

Algorithme du programme Principal

Le programme principal permet d’exécuter les différentes étapes du programme dans l’ordre. Il commence par demander le nombre d’éléments du tableau, puis remplit le tableau avec les valeurs saisies par l’utilisateur. Ensuite, il appelle la procédure SHELL(t, n) pour trier les éléments du tableau dans l’ordre croissant. Enfin, il affiche le tableau après le tri.

Déclaration des objets

Objet Type / Nature
n entier
t tableau des entiers

 

La fonction saisie

La fonction saisie() permet de saisir et de contrôler le nombre d’éléments n du tableau. Elle demande à l’utilisateur de donner une valeur comprise entre 2 et 14.

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure remplir

La procédure remplir permet de remplir le tableau t avec n entiers saisis par l’utilisateur.

Déclaration des objets

Objet Type / Nature
binaire chaîne des caractères

 

La procédure SHELL

La procédure Shell consiste à trier progressivement le tableau en utilisant des intervalles p de plus en plus petits. À chaque passage, les éléments séparés de p positions sont comparés et les éléments plus grands sont décalés vers la droite. L'intervalle est ensuite réduit jusqu'à p = 1, ce qui permet de terminer le tri dans l'ordre croissant.

Déclaration des objets

Objet Type / Nature
i entier
j entier
e entier
p entier

 

La procédure afficher

La procédure afficher(t, n) permet d’afficher les n premiers éléments du tableau t.

Elle parcourt les cases du tableau à l’aide de la boucle for, de l’indice 0 jusqu’à n-1. À chaque passage, l’instruction print(t[i]) affiche la valeur contenue dans la case t[i].

Déclaration des objets

Objet Type / Nature
i entier

 

Programme en Python

Exécution du programme

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

Photos des articles

Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info