..


Liens sponsorisés

Algorithmes de tri en C

Article écrit par Stefano Cancedda
Page 1 sur 5

Un chiffre est une séquence d'opérations de tri qui attribue la priorité à un ordre des éléments dans un ordre établi selon un rapport. Ces lignes seront exposées les plus communs (avec des échantillons un'approccio fortement orienté) et chacun sera commenté sur le fond et les défauts.
Pour plus de simplicité dans les exemples seront toujours utilisées comme un ensemble de nombres naturels et la relation d'ordre que celui de la majorité, les algorithmes sont encore exposés universellement valable, déduction faite d'une œuvre courte de l'adaptation du code.

Tri de sélection

Pour commander un nombre à un jeu avant et l'intuition peuvent être numérisés autant de fois que le transporteur son intégralité, à chaque étape de recherche pour la valeur minimale et l'ajouter à la séquence ordonnée, initialement identifiée avec un deuxième transporteur;






 Exemple: {5,1,3,8,2}







 Étape # 1 -> {1, X, X, X, X}







 Étape # 2 -> {1.2, X, X, X}







 Étape # 3 -> {1,2,3, X, X}







 Étape # 4 -> {1,2,3,5, X}







 Étape # 5 -> {1,2,3,5,8}



(X est marqué d'un emplacement de la nouvelle compagnie n'a pas encore écrit)

Du point de vue de l'espace dans la mémoire, cet algorithme appliquée de cette façon est très pénalisant puisque l'ensemble initial est copié à l'autre. Un truc simple est de remplacer l'opération de copie correctives à l'échange de la valeur minimale juste trouvé le premier élément qui ne fait pas partie du sous-ensemble des numéros déjà commandé.






 Exemple: {5,1,3,8,2}







 Étape # 1 -> {1,5,3,8,2}







 Étape # 2 -> {1,2,3,8,5}







 Étape # 2 -> {1,2,3,8,5}







 Étape # 3 -> {1,2,3,5,8}



Le chiffrement est modifié Trier sélection, qui suit une éventuelle mise en œuvre:





 sel_sort (int * v, int size)







 {



   



 int i = 0, temp = 0, y = 0, j = 0;



   



 for (i = 0, i = j -)



   



 {

  

      



 {



         



 temp = v [j];



         



 y = j;



      



 }

  

   



 swap (v, i, y) / / changer la position dans le vecteur v Îëÿ



   



 }







 }



La double boucle est niché deviner que le nombre de comparaisons effectuées par cet algorithme est d'un carré que le nombre d'éléments.
Cela signifie qu'un certain nombre de comparaisons sont faites à l'ordre de grandeur égale au carré du nombre d'éléments dans la collection.
Notez que dans les cas normaux, il est le nombre de comparaisons à peser l'efficacité et les autres opérations, la plupart des missions, ont un coût négligeable par rapport à la comparaison.
Lorsque vous avez à l'ordre des dossiers de taille considérable, le nombre d'échanges a une influence décisive sur la performance. Dans ce deuxième cas, la sélection Trier s'avère être une excellente solution et optimale car chaque élément est déplacé au plus une fois.

La sélection Trier est aussi un algorithme stable.
Un algorithme stable préserve l'effet des commandes précédentes dans le cas de structures de données sont traités dans plusieurs clés, tels que Nom complet:






 1.

 



 Charles Green







 2.

 



 Andrea Rossi







 3.

 



 Mario Rossi







 4.

 



 Luciano Bianchi



Nous commandons les champs pour le prénom:





 1.

 



 Andrea Rossi







 2.

 



 Charles Green







 3.

 



 Mario Rossi







 4.

 



 Luciano Bianchi



Maintenant que nous commandons par nom de famille, un algorithme plus stable permettra de préserver la priorité de vos initiales, ou, dans le cas d'une égalité entre les touches sur lesquelles vous commandez, c'est la position de premier ordre pour déterminer l'emplacement final.





 1.

 



 Luciano Bianchi







 2.

 



 Andrea Rossi







 3.

 



 Mario Rossi







 4.

 



 Charles Green



Un algorithme stable, fera en sorte que dans ce cas, précède toujours Mario Rossi Andrea Rossi. On ne dispose pas d'un comportement stable, n'est pas prévisible, donc cela pourrait être inversé les positions 2 et 3.

Le tri de sélection est également sur ​​place.
Un algorithme est dit sur ​​le spot (ou même à la place) si elle ne prend pas un espace mémoire supplémentaire à la base de données d'origine, ou il s'agit d'une petite quantité constante.

Dans la même catégorie ...
E-Learning
ASP.NET (Cours) ASP.NET (Cours)
Cours complet pour construire des applications Web à partir de 49 €.
PHP (cours) PHP (cours)
Cours complet pour la création de sites Web dynamiques. A partir de 49 €.
VB.NET (Cours) VB.NET (Cours)
Faire des applications de bureau avec Visual Basic .. A partir de 49 €.
Liens sponsorisés