La fonction de partition est une fonction qui prend un tableau a [l… u] comme entrée. Ici, l est la limite inférieure, et u est la limite supérieure du tableau. L'algorithme trouve un index q de sorte que tous les éléments inférieurs à un [q] tombent dans le sous-réseau a [l… q-1], et tous les éléments supérieurs à une [Q] tombent dans la sous-bande A [Q + 1… U]. La fonction de partition y parvient en utilisant un élément pivot et deux pointeurs - Pointer I et pointeur J vers le tableau.
Le pointeur J pointe vers le premier élément du tableau, et le pointeur I est initialisé sous le nom de J-1. La fonction itère dans le tableau à l'aide du pointeur j. Pour l'élément A [J], l'élément peut être supérieur à l'élément pivot ou inférieur à l'élément pivot. Si l'élément est supérieur à l'élément pivot, le pointeur J est incrémenté, pointant vers l'élément suivant. Si l'élément A [J] est inférieur à l'élément de pivot, nous incrémentons pointeur I, échangez un [i] et a [j]. L'échange des éléments aide à maintenir le pointeur I de telle sorte que les éléments jusqu'à l'élément pointé par le pointeur I sont inférieurs à l'élément pivot. Comme étape finale, la fonction de partition échange l'élément de pivot avec l'élément à l'index I + 1, déplaçant ainsi l'élément de pivot dans la position correcte dans le tableau partitionné.
Code source
Def partition (Arr, LB, UB):La complexité temporelle de la meilleure cas de Quicksort est O (n log n). Dans le meilleur cas, dans chaque appel à l'algorithme, l'algorithme divise le problème en deux sous-problèmes de taille égale. La pire complexité de temps de l'algorithme Quicksort est O (n ^ 2). Cela se produit lorsque l'élément de partition est toujours choisi comme dernier élément, et le tableau est déjà trié.