L'algorithme de tri par sélection divise le tableau en deux parties : la partie triée et la partie non triée. Initialement, la partie triée est vide, et la partie non triée contient tous les éléments. L'algorithme fonctionne en trouvant l'élément le plus petit (ou le plus grand, selon l'ordre de tri) de la partie non triée et en l'échangeant avec le premier élément de la partie non triée. Ce processus se poursuit jusqu'à ce que l'ensemble du tableau soit trié.
#Suppose we have the following array: arr = [64, 25, 12, 22, 11]
Tableau après le premier passage : [11, 25, 12, 22, 64]
Tableau après le deuxième passage : [11, 12, 25, 22, 64]
Tableau après le troisième passage : [11, 12, 22, 25, 64]
Tableau trié final : [11, 12, 22, 25, 64]
def selection_sort(arr): # Traverse through all array elements for i in range(len(arr)): # Find the minimum element in the remaining unsorted part min_index = i for j in range(i 1, len(arr)): if arr[j]Tableau trié : [11, 12, 22, 25, 64]
Complexité temporelle du tri par sélection :
Meilleur cas : O(n²)
Cas moyen : O(n²)
Pire des cas : O(n²)
Même si le tri par sélection fonctionne bien pour les petits ensembles de données, il n'est pas idéal pour les tableaux plus grands car sa complexité temporelle est O(n²). Cependant, il est facile à mettre en œuvre et peut être utile dans les cas où la mémoire est un problème, car le tri par sélection est en place (ne nécessite aucune mémoire supplémentaire).
Avantages :
Simple à comprendre et à mettre en œuvre.
Fonctionne bien sur les petites listes.
Ne nécessite pas de mémoire supplémentaire puisqu'il trie le tableau sur place.
Inconvénients :
Inefficace pour les grands ensembles de données en raison de sa O(n²) complexité temporelle.
Ce n'est pas un algorithme de tri stable, ce qui signifie que des éléments égaux peuvent ne pas conserver leur ordre les uns par rapport aux autres.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3