J'ai un problème. Je suis très confus sur les algorithmes de tri et d'insertion d'un shell. Comment devrions-nous nous distinguer les uns des autres?Tri de l'enveloppe et tri par insertion
Répondre
Vous pouvez implémenter le tri par insertion sous la forme d'une série de comparaisons et d'échanges d'éléments contigus. Cela en fait un "type stable". Le tri Shell compare et échange les éléments éloignés les uns des autres. Cela le rend plus rapide.
Je suppose que votre confusion vient du fait que le tri des coquilles peut être implémenté comme plusieurs sortes d'insertion appliquées à différents sous-ensembles de données. Notez que ces sous-ensembles sont composés d'éléments non contigus de la séquence de données.
Voir Wikipedia pour plus de détails
;-)Court et doux. merci ... – Rhokai
Le insertion sort est simple, en place, O tri (N^2). Shell sort est un peu plus complexe et plus difficile à comprendre, et quelque part autour de O (N^(5/4)). Vérifiez les liens pour des exemples - il devrait être facile de voir la différence.
Shell sort est une version généralisée de Insertion sort. Le principe de base est le même pour les deux algorithmes. Vous avez une séquence triée de longueur n et vous insérez l'élément non trié dans celui-ci - et vous obtenez n + 1 séquence de longs éléments triés. La différence est la suivante: alors que le tri par insertion ne fonctionne qu'avec une séquence (initialement le premier élément du tableau) et l'étend (en utilisant l'élément suivant). Cependant, le tri des coquilles a un incrément décroissant , ce qui signifie qu'il y a un écart entre les éléments comparés (initialement n/2). Il y a donc n/2 séquences à trier en utilisant le tri par insertion. Dans chaque étape, l'incrément est réduit (souvent juste divisé par 2,2) et le nombre de séquences est réduit. Dans la dernière étape il n'y a pas d'écart et l'algorithme dégénère en un simple tri par insertion. En raison de l'incrément décroissant, les éléments grands et petits sont déplacés rapidement pour corriger la partie du réseau et que dans la dernière étape triés en utilisant le tri d'insertion très rapidement. Cela conduit à une complexité temporelle réduite O (n^(4/3))
- 1. Tri de tri par opposition à tri par insertion
- 2. Tri du tableau par tri par insertion
- 3. Tri personnalisé avec tri par insertion
- 4. C- Tri par insertion
- 5. Tâche de tri par insertion
- 6. tri par insertion - question pseudocode
- 7. Tri par insertion droite et binaire
- 8. tri par insertion et tableaux 2d
- 9. Combinaison du tri par fusion avec le tri par insertion
- 10. tri d'un tableau partiellement trié avec tri par insertion
- 11. Java: échange d'algorithmes de tri par insertion
- 12. pseudo-algorithme d'algorithme de tri par insertion
- 13. mise en œuvre de tri par insertion
- 14. Tri par sélection et tri par insertion. Énorme différence de vitesse
- 15. Tri par bulles et tri par sélection
- 16. C++ Alphabétique Insertion Tri
- 17. Tri par insertion dans un système distribué
- 18. Inversion pour le tri par insertion!
- 19. Tri par insertion d'arbre binaire dans C
- 20. Tri par insertion d'éléments dans le tableau
- 21. Tri par ordre décroissant Tri par tas
- 22. Programme de tri par insertion, pas de sortie
- 23. Bogue de tri par insertion de liste à liens doubles
- 24. Tri de la chaîne selon son insertion
- 25. tri par insertion de code en Python pas correctement le tri
- 26. Erreur de calcul médian du tri par insertion C++
- 27. Comparaisons de comptage à l'aide du tri par insertion
- 28. trouver grand-o temps complexité de tri par insertion
- 29. Trieuse et tri par enregistrement
- 30. Tri par tri des valeurs clés
Ce sont des algorithmes complètement différents. –
Mais comment cela est-il devenu différent? S'il vous plaît expliquer ... – Rhokai
Avez-vous lu les articles de Wikipedia? Ils donnent de très bonnes explications sur les deux algorithmes. –