tri en methode recursive

الموضوع في 'أرشيف المنتدى التعليمي' بواسطة informaticienne8, بتاريخ ‏19 أفريل 2008.

  1. informaticienne8

    informaticienne8 عضو نشيط

    إنضم إلينا في:
    ‏25 جانفي 2008
    المشاركات:
    262
    الإعجابات المتلقاة:
    174
      19-04-2008 22:38
    slt à tous j vous demande de m'envoyer tous les tri par la methode recursive si vous pouvez
    :satelite::satelite:merci d'avance
     
  2. med-gafsi

    med-gafsi عضو نشيط

    إنضم إلينا في:
    ‏26 مارس 2008
    المشاركات:
    211
    الإعجابات المتلقاة:
    11
      20-04-2008 00:30
    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 := t[i - h]; i := i - h; Until (i = h) Or (aux > t[i - h]); t := 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)
    +++++++++++++++++++++++++++++++++++++
    Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri à bulles :


    Procedure Tri_bulles (var t : TAB; n : integer);Var i, aux : integer; Function Trier (t : TAB; n : integer) : Boolean; Var ok : boolean; i : integer; Begin ok := true; i := 1; Repeat If t[i + 1] < t Then ok := false Else i := i + 1; Until ((Not ok) or (i >= n)); Trier := ok; End; Begin If Not Trier (t, n) Then Begin For i := 1 To n - 1 Do If t > t[i + 1] Then Begin aux := t; t := t[i + 1]; t[i + 1] := aux; End; Tri_bulles (t, n); End; End;++++++++++++++++++++++++++++++++++++++++++++++++++++Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par fusion :

    Procedure Tri_Fusion (Var t : TAB; g, d : integer);Var m, i, j, k : integer; s : TAB;Begin If d > g Then Begin m := (g + d) Div 2; Tri_Fusion (t, g, m); Tri_Fusion (t, m + 1, d); For i := m DownTo g Do s := t; For j := m + 1 To d Do s[d + m + 1 - j] := t[j]; i := g; j := d; For k := g To d Do Begin If s < s[j] Then Begin t[k] := s; i := i + 1; End Else Begin t[k] := s[j]; j := j - 1; End; End; End;End;+++++++++++++++++++++++++++++++++++++++++++++++++++Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par insertion :
    Procedure Tri_Ins (Var t: TAB; n: integer);Var aux,i : integer;begin If n > 1 Then begin Tri_Ins (t,n - 1); If t[n] < t[n - 1] Then Begin aux:= t[n]; i := n; Repeat t := t[i - 1]; i := i - 1; Until (i = 1) Or (aux > t[i - 1]); t := aux; End;
     
  3. samm

    samm عضو مميز

    إنضم إلينا في:
    ‏11 جويلية 2006
    المشاركات:
    892
    الإعجابات المتلقاة:
    1.177
      20-04-2008 12:22
    تفضل اختي كل شيء في المرفقات حظ سعيد مع تمنياتي بالنجاح للجميع
    BONNE CHANCE
     

    الملفات المرفقة:

مشاركة هذه الصفحة

جاري تحميل الصفحة...