Tri rapide (5 / 7 étapes)

Etape 5: Mise en œuvre de qs_partition

Arrière-plan

Avant de se déplacer à la mise en œuvre de la fonction quick_sort, nous devons comprendre que quick_sort ne fait pas beaucoup de travail en soi. Notre fonction qs_partition accomplit l’essentiel du travail. qs_partition accepte comme paramètres un tableau d’entiers, une limite gauche dans ce tableau et une limite droite dans ce tableau et retourne un entier, tout comme la principale.

* Note : parce qu’une bibliothèque que nous utilisons (algorithm.h) déjà a une fonction appelée partition, nous appellerons notre fonction de partition qs_partition.

Objectif

Le travail de qs_partition est de choisir un nombre dans le tableau comme un pivot et diviser tous les nombres dans le tableau en deux groupes : celles qui sont inférieures ou égales à pivot et ceux qui sont plus importants. Il place tous les numéros de moindre ou égales avant le pivot et tous les numéros de plus après. Voici une façon qui peut être accomplie.

Mesures

1) qs_partition tout d’abord la première chose qu’il est autorisé à toucher (la question à la limite de gauche) et il appelle un pivot. Il n’y a rien de spécial se passe ici. La fonction tout d’abord se déclarer qu’une valeur appelée pivot est égale au premier élément pour lequel la fonction est autorisée à accéder.

2) de la même manière, nous appeler une variable interchangeables et affecter l' index du pivot.

3) nous traversent ensuite le tableau, en regardant chaque élément de la deuxième valeur à la limite droite. Nous ne comparons la première valeur à la valeur du pivot car la première valeur est la valeur pivot.

4) à chaque endroit, nous comparons la valeur à cet endroit pour notre pivot. Si cette valeur est inférieure ou égale à la pivot, nous voulons passer cette valeur aussi loin vers le début du tableau que possible. C’est là qu’intervient interchangeables. Nous allons permuter les valeurs à interchangeables (car interchangeables est un index) et la valeur actuelle, nous assistons, puis nous augmenterons interchangeables par l’un, donc nous ne sommes pas ceux permutation des valeurs de retour dans le milieu du tableau.

5) une fois que nous avons parcouru tous les nombres, notre indice d’interchangeables représentera l’endroit où l'on veut placer notre pivot. Donc nous allons échanger la valeur à interchangeables et le pivot. Enfin, nous allons retourner ou transmettre à la fonction qui a appelé qs_partition, l’index d’où nous mettons le pivot. Vous verrez pourquoi bientôt.

Examen

J’espère que vous pouvez voir que par la permutation dans l’ordre nombres inférieurs à la pivot dans le premier spot après notre dernier échange, nous avons créé l’effet désiré : tous les chiffres avant le pivot sont inférieures ou égales à la pivot et tous les numéros après lui sont supérieures.

Articles Liés

Tri de votre pot de Penny

Tri de votre pot de Penny

pour la plupart des banques, encaissement dans votre bocal de penny est quelque chose qu'ils ne font qu'avec réticence. Vous devez trier manuellement les pièces de monnaie en dénominations unique. Vous devez manuellement leur sac en quantités précise
Définition d’un nouvel algorithme de tri basé sur parallèle de décodage et l’encodage ultérieur

Définition d’un nouvel algorithme de tri basé sur parallèle de décodage et l’encodage ultérieur

Un algorithme de tri est un algorithme qui met des éléments d'une liste dans un certain ordre. Les ordres plus utilisées sont l'ordre numérique et l'ordre lexicographique. Un tri efficace est importante pour l'optimisation de l'utilisation d'autres a
I-pod/mp3 tri fold wallet

I-pod/mp3 tri fold wallet

il s'agit d'un simple tri rapide et facile pli portefeuille avec poche i-pod/mp3.Tout ce dont vous avez besoin est : papier (8.5-11), I-pod nano ou autres petits mp3 (j'ai seulement essayé avec l'Ipod), une bande claire paquet et quelque chose pour d
Lavage vaisselle extrême Made Easy !

Lavage vaisselle extrême Made Easy !

Vous avez beaucoup de vaisselle à laver à la main et ont besoin de les faire faire à la hâte ? Alors cette instructable est fait pour vous !** Instructable Voici ma Liste EXHAUSTIVE des trucs, astuces, hacks et techniques pour obtenir--en particulier
Comment démonter un fusil de chasse Mossberg 500 Series

Comment démonter un fusil de chasse Mossberg 500 Series

ce Instructable vous guidera dans les étapes du démontage d'un fusil de chasse Mossberg pompe-action (modèles 500 505, 535). Démontage d'un fusil de chasse Mossberg 500 peut être appris et maîtrisé rapidement. Il ne prend que quelques minutes pour le
L’humidité du sol capacitif mesure (avec I2C)

L’humidité du sol capacitif mesure (avec I2C)

Beaucoup a été écrit sur la façon de mesurer l'humidité du sol et surtout sur ce capteur, à utiliser.Avec la simple résistance de mesure le plus gros problème est la corrosion du capteur, pas simplement parce qu'il est en contact avec le sol, mais au
Photobooth photobucket de macro à l’aide d’une webcam (pas de caméra)

Photobooth photobucket de macro à l’aide d’une webcam (pas de caméra)

Oui, je sais que cela ressemble à « il ne peut pas être aussi simple »...Où sont les caméras, piles, décors, trépieds, supports de caméra, techniques de mise au point, cher feux, réflecteurs, diffuseurs, grandes boîtes, fois longue construction, coût
Boire des papillons peut

Boire des papillons peut

pendant un certain temps et pour des raisons que je ne suis pas entièrement sûr de, j'ai essayé de trouver une bonne utilisation de canettes de soda usagés. J'ai essayé de faire un mini coffre de tirages, boîtes-cadeaux (il est un très bon Instructab
Un rouleau à pâtisserie de gravure au laser

Un rouleau à pâtisserie de gravure au laser

Un de mes amis fait cuire les biscuits au sucre plus étonnantes. Elle arrive aussi à aimer les girafes, alors j'ai pensé – quoi de mieux obtenir des cookies plus de lui qu'au graver quelques girafes sur un rouleau à pâtisserie ! Vous pouvez aussi enc
TABLIER de HOLDING

TABLIER de HOLDING

tout le monde a un Sac de Holding de nos jours, mais personne n'a un Tablier de Holding. Avec ses multiples poches striées toujours maintenues ouverts à recevoir, ses diverses poches souples pour contenir près de choses et un dé de 20 naturel brillan
Comment s’assurer que vos voisins obtiennent leur courrier si elle se retrouve dans votre boîte de

Comment s’assurer que vos voisins obtiennent leur courrier si elle se retrouve dans votre boîte de

il s'agit d'un guide pour contribuer à une culture de respect dans votre immeuble en veillant à ce que vos voisins obtiennent leur courrier si elle atterrit dans votre boîte aux lettres. C'est l'une de ces choses incroyablement faciles que la plupart
Aspirateur qui aspire... ou plutôt ne pas sucer

Aspirateur qui aspire... ou plutôt ne pas sucer

cet aspirateur vertical s'apprêtait à entrer dans une benne (benne), j'ai demandé le jet-ee, ce qui n'allait pas et on m'a dit il n'a pas propre très bien.  Comme il avait l'air presque neuf, j'ai demandé si je pourrais avoir, et cela « fix it » a co
Comment utiliser Mp3Tag pour éditer des fichiers Audio

Comment utiliser Mp3Tag pour éditer des fichiers Audio

Mp3Tag est un outil de montage de meta-données permet de modifier les différents aspects d'un fichier audio, qui peuvent être manquants après téléchargement du fichier audio, comme l'artiste de l'Album, année de sortie, jour de sortie, en ajoutant de
Un moyen astucieux pour trier les chaussettes rapide.

Un moyen astucieux pour trier les chaussettes rapide.

Tri de chaussettes est une de ces choses de nuisance que vous devez faire qui dévore vraiment de temps.  J'ai donc trouvé un moyen de rendre plus facile pour faire coïncider chaussettes après qu'ils sortent de la sécheuse. Je ne pense pas que quoi qu