C pour lundi a l'aide!!!!!!!!!!!!!!!!!!!!!!!!
Résolu
firas mili
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je cherche la méthode de tri shell par récursivité (trier les éléments d'un tableau);
merci de me rependre c pour lundi
je cherche la méthode de tri shell par récursivité (trier les éléments d'un tableau);
merci de me rependre c pour lundi
A voir également:
- C pour lundi a l'aide!!!!!!!!!!!!!!!!!!!!!!!!
- Programme groupe whatsapp du lundi au dimanche - Guide
- Communautés WhatsApp : des groupes dans les groupes - Accueil - WhatsApp
- Afficher lundi, mardi excel ✓ - Forum Excel
- Lundi matin l'empereur jamel debbouze - Forum Loisirs / Divertissements
- Cyber lundi - Accueil - Services en ligne
5 réponses
Salut,
Bien, tu vois quand tu veux, c'est tout à ton avantage et de poster la solution t'honorerait encore plus ;-))
Merci.
Bien, tu vois quand tu veux, c'est tout à ton avantage et de poster la solution t'honorerait encore plus ;-))
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri Shell :
Procedure Tri_Shell_Rec (Var t: TAB; n,h : integer);
Var aux,i : integer;
begin
If h > 0 Then
Begin
If n > h Then
begin
Tri_Shell_Rec (t,n - h,h);
If t[n] < t[n - h] Then
Begin
aux:= t[n];
i := n;
Repeat
t[i] := t[i - h];
i := i - h;
Until (i = h) Or (aux > t[i - h]);
t[i] := aux;
End;
End;
Tri_Shell_Rec (t,n,h Div 3);
End;
End;
Remarque:
Tester cette procédure sur des tableaux de petites tailles, car si n’est pas le cas le nombre des appels devient important et en aura le problème de débordement de la pile (la limite technique de la récursivité est la mémoire).
On peut augmenter la taille du tableau test on augmentant la taille de la pile (Option\Compilateur\Paramètres mémoire\Taille pile)
Procedure Tri_Shell_Rec (Var t: TAB; n,h : integer);
Var aux,i : integer;
begin
If h > 0 Then
Begin
If n > h Then
begin
Tri_Shell_Rec (t,n - h,h);
If t[n] < t[n - h] Then
Begin
aux:= t[n];
i := n;
Repeat
t[i] := t[i - h];
i := i - h;
Until (i = h) Or (aux > t[i - h]);
t[i] := aux;
End;
End;
Tri_Shell_Rec (t,n,h Div 3);
End;
End;
Remarque:
Tester cette procédure sur des tableaux de petites tailles, car si n’est pas le cas le nombre des appels devient important et en aura le problème de débordement de la pile (la limite technique de la récursivité est la mémoire).
On peut augmenter la taille du tableau test on augmentant la taille de la pile (Option\Compilateur\Paramètres mémoire\Taille pile)