Docstoc

algosTri

Document Sample
algosTri Powered By Docstoc
					algosTri.nb                                                                         1




 Algorithmes de tri


  Exemple :

              n = 10; a = 833, 95, 73, 0, 16, 11, 99, 31, 14, 25<;



              Sort@aD


               80, 11, 14, 16, 25, 31, 33, 73, 95, 99<




  Écrire une procédure qui échange les éléments d'indices i et j de la liste a.

 Tri par sélection




     Principe : on va chercher le plus petit élément, on l'échange avec le
     premier; on fait de même avec la liste des éléments restants et on
     itère.
     Ainsi {3,5,2,7,1,8} devient {1,5,2,7,3,8} qui devient {1,2,5,7,3,8} et ainsi
     de suite.



  Écrire la procédure       triSelection[]
algosTri.nb                                                                                2



  Question : quel est le nombre total d'opérations (comparaisons) effectué pour une
  liste de n éléments ? ce nombre d'opérations dépend-il de la liste donnée ?

 Tri à bulles



  Expliquez le nom de cet algorithme en examinant le code suivant :


               If@a@@j - 1DD > a@@jDD , swap@j - 1, jD D
              Do@

                , 8i, n, 1, -1< , 8j, 2, i<
              D




  Quel est le nombre total de comparaisons ?
  Quel est le nombre maximal d'échanges, dans quel cas a-t-il lieu ?
  Que se passe-t-il si la liste est déjà triée ?

 Tri du rangement du jeu de cartes (tri par insertion)



  Supposons que les i premiers éléments sont déjà rangés: on va alors insérer le
  i + 1ème parmi les i premiers, ce qui donne i + 1 éléments ordonnés. On itère.
  Implémenter cet algorithme.

  Quels sont les nombres de comparaisons et d'échanges dans le pire des cas ? Quel
  est le pire des cas ? Que se passe-t-il si le tableau initial est déjà trié sauf un ou
  deux éléments égarés ?

 QuickSort



  Le principe de quicksort est de mettre un élément — disons a @@i DD — à la place qu'il
  occupera définitivement, puis de trier séparément (par le même procédé) les deux
  sous tableaux a[1…i-1] et a[i+1…n].

  On note Cn le temps d'exécution moyen du tri par quicksort d'un tableau de n
  éléments. Compte tenu de ce qu'il faut comparer l'élément v à tous les autres
  éléments de la liste pour sélectionner les deux sous-listes, que celles-ci sont de
  longueurs k - 1 et n - k où k est aléatoire (1 £ k £ n ), en considérant que les
  différents "k " sont équiprobables on obtient la formule de récurrence
 On note Cn le temps d'exécution moyen du tri par quicksort d'un tableau de n
  éléments.
algosTri.nb   Compte tenu de ce qu'il faut comparer l'élément v à tous les autres        3

 éléments de la liste pour sélectionner les deux sous-listes, que celles-ci sont de
 longueurs k - 1 et n - k où k est aléatoire (1 £ k £ n ), en considérant que les
 différents "k " sont équiprobables on obtient la formule de récurrence

           Cn =
            n - 1 + ÄÄÄÄ ⁄n HCk-1 + Cn-k L = n - 1 + ÄÄÄÄ ⁄n-1 Ck
                     1
                     n    k=1
                                                      2
                                                      n    k=0



 En déduire la valeur (simple) de n Cn - Hn + 1L Cn-1




 En déduire que ÄÄÄÄÄÄÄÄÄÄÄ = C te + 2 ‚             ~ 2 Log@n D
                    C                   n     1
                     n
                                             ÄÄÄÄÄ
                    n +1                k =3 k




 Que fait Quicksort si le tableau est déjà rangé ?




 Que se passe-t-il si à chaque étape (quand on subdivise une liste de k éléments) on
 trouve une sous-liste vide et l'autre "pleine" (avec k - 1 éléments) ? Quel est alors
 le (pire) temps d'éxécution possible ?

 Tri par fusion



 le principe est très simple : on fusionne deux sous-listes déjà triées. Comment
 sont-elles déjà triées ? mais par le même algorithme !




 Ecrire une procedure      fusionner,   puis une procedure récursive   triFusion.




 Coût de l'algorithme ? (prendre n = 2p pour fixer les idées)




 Quel est le principal inconvénient de cet algorithme ?

				
DOCUMENT INFO
Shared By:
Tags:
Stats:
views:3
posted:10/9/2012
language:Catalan
pages:3