Toutefois, cette modification nécessite une structure de données qui prend en charge des insertions ou des suppressions efficaces, telles qu`une liste liée, ou entraîne l`exécution d`écritures Θ (N2). Tri de sélection n`est pas difficile à analyser par rapport à d`autres algorithmes de tri, car aucune des boucles dépendent des données dans le tableau. Dans la variante de tri de bingo, les articles sont classés en regardant à plusieurs reprises les éléments restants pour trouver la plus grande valeur et en déplaçant tous les éléments avec cette valeur à leur emplacement final. Il est important de reconnaître que si une classe implémente l`interface comparable à compareTo () et Equals () les méthodes doivent être corrélées dans un sens que si x. Initialement, la sous-liste triée est vide et la sous-liste non triée est la liste d`entrée entière. Le tri de sélection fonctionne comme suit: vous examinez le tableau entier pour le plus petit élément, une fois que vous le trouvez vous l`échangez (le plus petit élément) avec le premier élément du tableau. Le tri de sélection peut être implémenté comme un tri stable. Nous définissons trois références à l`avant de chaque tableau. L`algorithme de tri de sélection est basé sur l`idée de trouver l`élément minimal ou maximal dans un tableau non trié, puis de le placer dans sa position correcte dans un tableau trié. Ce processus continue et nécessite (n-1 ) passe pour trier n éléments, puisque l`élément final doit être en place après le ((n-1) ) St Pass. Dans le tri de sélection, la boucle interne trouve la plus petite (ou la plus grande) valeur suivante et la boucle externe place cette valeur dans son emplacement approprié. HeapSort améliore grandement l`algorithme de base en utilisant une structure de données de tas implicite pour accélérer la recherche et la suppression de la référence la plus basse.
Vous pouvez voir que le tri de sélection fait le même nombre de comparaisons que le tri de bulle et est donc aussi (O (n ^ {2}) ). Le premier problème est résolu à l`aide de listes liées, attachées à chaque index de tableau. Le tri d`insertion est très similaire en ce qu`après l`itération KTH, les premiers éléments k dans le tableau sont dans l`ordre trié. Si implémenté correctement, le tas permettra de trouver l`élément le plus bas suivant dans Θ (log n) temps au lieu de Θ (n) pour la boucle interne dans le tri normal de sélection, réduisant le temps de fonctionnement total à Θ (n log n). La méthode par défaut Equals () compare deux objets en fonction de leurs numéros de référence et, par conséquent, dans l`exemple de code ci-dessus, deux cartes avec la même valeur ne seront pas égales. Nous voyons immédiatement deux inconvénients à cet algorithme de tri. Si, au lieu de permuter à l`étape 2, la valeur minimale est insérée dans la première position (c`est-à-dire que tous les éléments intermédiaires sont déplacés vers le bas), l`algorithme est stable. Il y a N choix possibles pour le premier élément, (N-1) choix possibles pour le deuxième élément,. Nous allons finir avec une liste triée dans le deuxième tableau. Parmi les algorithmes simples de moyenne-case Θ (N2), le tri de sélection surpasse presque toujours le tri de bulle et le tri de GNOME.