Bonjour,
J'ai essayé de comprendre le concept d'algorithme de tri rapide, mais j'ai du mal à le comprendre et à l'appliquer. J'ai parcouru de nombreux sites, regardé des tutoriels et même tenté de l'écrire moi-même, mais il semble qu'il me manque quelque chose de critique.
Quick Sort, d'après ce que j'ai compris jusqu'à présent, est un algorithme de tri qui utilise une stratégie de division pour régner. Il choisit un élément pivot et divise le tableau en deux sous-tableaux, avec des éléments inférieurs au pivot à gauche et des éléments supérieurs au pivot à droite. Cette méthode est poursuivie sur les sous-tableaux de manière récursive jusqu'à ce que le tableau complet soit trié.
Cependant, lorsque j'essaie d'implémenter la technique en Python, cela ne fonctionne pas comme prévu. Voici ce que j'ai trouvé jusqu'à présent*:
Lorsque j'exécute le code avec l'exemple my_array, la sortie n'est pas triée de manière appropriée, car elle devrait être similaire avec this example. J'ai l'impression de faire une erreur avec la sélection du pivot ou la division des sous-tableaux.
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) # Example usage my_array = [38, 27, 43, 3, 9, 82, 10] sorted_array = quick_sort(my_array) print(sorted_array)
Quelqu'un pourrait-il m'aider à mieux comprendre l'algorithme de tri rapide et à signaler les défauts de mon implémentation*? J'apprécierais toutes les réflexions, explications ou ajustements de code qui pourraient m'orienter sur la bonne voie.
Merci pour votre compréhension et votre aide !
Partager