tri colline algorithme -OC de combat (b)

Je ne faisais rien pour cet algorithme, et mon nom ne devrait pas apparaître dans le nom de l'algorithme. ---- Hill (tri shell Auteur)

Colline colline sont classifiées par le concepteur (Donald Shell) Nommé d'après l'algorithme est constitué de 1959 publié . Certaines anciennes versions de manuels scolaires et des manuels de référence à l'algorithme nommé Shell-Metzner, à savoir contenant le nom de Marlene, Norton Metzner Toutefois, selon Metzner je dis: « Je ne faisais rien pour cet algorithme, et mon nom ne doit pas apparaître dans le nom de l'algorithme. »

---- célébrité que le temps plus que modeste.

La première définition

Trier Shell , Également connu en tant que descendant incrémentale algorithme de tri est insertion Trier Une version plus efficace et améliorée. tri colline algorithme de tri non stationnaire.

Shell genre est basé sur insertion Trier Les deux propriétés suivantes proposées ** méthode améliorée de:

1. Lorsque l'opération de tri par insertion de données presque triée, une efficacité élevée, à savoir l'efficacité de séquençage linéaire peut être obtenue

2. Cependant, l'insertion est généralement inefficace, car sorte genre d'insertion ne peut déplacer des données d'un bit.

Deuxième: trier d'insertion

Comme il est mentionné dans le insertion Trier , Dans ce premier regard sur le tri par insertion, il fonctionne est En construisant une séquence ordonnée, pour les données non triés, à partir d'un balayage vers l'avant dans la séquence triée, et de trouver les positions d'insertion correspondantes.

Dire qu'une image vaut mille mots à une opinion personnelle graphique plus facile à comprendre:

Un article de Wikipédia - tri par insertion

Pour expliquer la figure:

1. Démarrez du premier élément, l'élément peut être considéré comme ayant été triés;

2. Enlever l'élément suivant, en comparaison avec les éléments avant, jusqu'à ce qu'il trouve un plus grand nombre de ou égal à celui de la butée avant, se déplacer en arrière comparaison numérique vol;

3. Le nouvel élément est inséré dans cette position,

OC directement sur le code, à suivre comme une sorte Hill github:

/ **

* Tri d'insertion

* / - (void) algorithm_InsertSortWith: (NSMutableArray *) {tableau

// Le premier numéro de référence, de sorte que i 1 à partir de

pour (int i = 1; i <  array.count; i ++) {// chiffres à localiser

= Int temp // sont un contraste de début à la dernière fois de la pré-positionnement des bons chiffres, en regardant droit devant jusqu'à ce que vous trouver un emplacement approprié < Supérieur ou égal devant ce nombre > ,

for (int j = i - 1, j > = 0 && Temp <   ; j -) {// n'a pas tous les chiffres sont déplacés vers l'arrière

tableau  = Array // il sera finalement déterminer l'emplacement d'un convertisseur numérique qualifié

tableau  = ;

 }

 }

 NSLog (@ "après l'ordre du tableau:% @", tableau);

}

La troisième analyse

Ou Colline de tri raison de le produire,

1. Lorsque l'opération de tri d'insertion de données presque triées, rendement élevé, à savoir, l'efficacité de la commande linéaire peut être atteint;

2. Cependant, l'insertion est généralement inefficace, car sorte genre d'insertion ne peut déplacer des données d'un bit.

Principalement le temps et la complexité de O (n²) passent par, il est de vous voir ne pas plaire à l'il.

Chat sont inséparables GIF, comment peut-moins ici! Figure sentir dans les prédécesseurs GIF souffle Niubi!

Trier Shell par comparaison tous les éléments Divisé en plusieurs zones pour améliorer Insérer type de performance . C'est: la zone de données peut être divisée en un tableau à deux dimensions, Chaque zone a Et puis trier chaque colonne.

Reste tableau trié --- , La première étape est réglée à 3, voir étape ultérieure

Un exemple d'un

Le premier groupe < Étape 3 == > Les données brutes

9, 1, 5

8, 3, 7

4, 6, 2

Après le premier ordre de ;

4, 1, 2

8, 3, 5

9, 6, 7

Le deuxième groupe < Étape 2 == > Les données brutes ;

4, 1

2, 8

3, 5

9, 6

7

Après le deuxième ordre de ;

2, 1

3, 5

4, 6

7, 8

9

Après la troisième étape == 1 paquet, afin de

Des exemples de l'dicarboxylique

Afficher plus d'étapes sous la forme d'une image:

calcul étape clé ---

Par le type d'insertion ci-dessus et Trier Shell Exemple, doit trier la colline ont une compréhension préliminaire, mais mesures Cette chose est complètement floue .... rassurez-vous;

parce que sélection de la taille de l'étape est une partie importante de sorte Shell Alors, choisissez des instructions séparées, de la proposition initiale est Binaire et binaire connaître les dernières étapes de 1 < C'est, une sorte d'insertion > Mais avec une taille plus petite étape lors de la commande, avant les grandes étapes avec des restes ordonnés. Si un certain nombre de colonnes sont classifiées dans les étapes 5 et ensuite à l'étape 3 à trier, alors non seulement le nombre de colonnes à l'étape 3 et ordonnée, et l'étape 5 est ordonnée. Sinon, l'algorithme dans un processus itératif va perturber l'ordre précédent, il ne serait pas en si peu de temps pour terminer le séquençage. Extrait de l'Encyclopédie wiki

La meilleure séquence connue des étapes proposées par Sedgewick ** 1,5,19,41,109, ... **

Il est obtenu à partir de deux séquence entrelacée d'éléments: < Formule: 9 (4 K - 2 K) + 1, et 2 K + 2 (2 + K 2 - 3) + 1 >

1,19,109,505,2161, ... ..., 9 || (4 K - 2 K) + 1, K = 0,1,2,3, ...

5,41,209,929,3905, ... .. || 2 + K 2 (2 + K 2 - 3) + 1, K = 0,1,2,3, ...

L'étude montre également que « comparaison de Shell est en quelque sorte la plus importante opération, pas d'échange. » Colline trier par cette séquence d'étapes plus rapides que l'insertion sorte, plus encore que le tri rapide et tas tri dans un petit tableau aussi rapide, mais plus lent que le tri ou la colline commande rapide en matière de grandes quantités de données. Peut se référer tri Algorithmes - ShellSort

OC Colline code de tri

- (void) algorithm_shellSortWith: array (NSMutableArray *) {

// longueur totale

int n = (int) array.count; // pour déterminer la longueur de boucle du numéro de l'étape la plus extérieure ---- < 1 est égal à étages binaires jusqu'à ce que >

for (int gap = n / 2; écart >  0; intervalle / = 2) {

 NSLog (@ "step ----% d", gap); // dans la détermination d'une étape après un intervalle de nombres.

pour (int i = écart; i <  n; i ++) {

 NSLog (@ "% d de bits du premier comparateur de bit% d", i - écart, i); // trouver une paire de l'avant, Analyse < Dès le premier démarrage > < croissant décroissant > , J - = écart, sort au sein du groupe

for (int j = i - écart; j > = 0 && réseau   >  tableau ; J - = écart) {

!  // position de change

  ;

 }

 }

 }

 NSLog (@ "----% @", tableau);

}

Avait bien rangé dans .....

Plus de contenu passionnant s'il vous plaît attention à "IT Alliance de combat" Oh ~ ~ ~

Lu Shu Award Winner Interview Series 80 est actuellement le seul écrivain Majin Lian Lu Prix: la terre avec des racines littéraires du Nord-Ouest portray bonté
Précédent
NodeJS articles réels - E / S et la programmation asynchrone asynchrone
Prochain
Lei Jun et se livrer à des choses, à remettre en question le record du monde! Peut jouer concernant Dong Mingzhu Wuhan Matin
Or Yongling (6) | a duré un an et a visité 24 villes, Chengdu Yongling Museum, l'interprétation du livre Cinq Dynasties et Dix États
Vente de biens immobiliers - Luke Shaw vendre leurs propres six chambres thème d'argent de maison
Architecture des articles réels (a) -Spring Boot + mybatis construction d'infrastructures
Italie centrale Experience Tour Première étape: Lazio Trouvées
Après plus de 80 petit hôtel trois mois zone cachée pourquoi presque disparu?
La Fondation Gates publie une lettre ouverte annuelle abordant des «questions difficiles» sur la pauvreté et les droits
KNW super petit guerrier: premier camp d'entraînement de course d'obstacles pour les enfants de la Chine, de sorte que plus d'enfants tombent en amour avec le mouvement de la science
star « trésor national » de l'Inde a dit, « assez solide Wuhan », mais aussi dit que les Chinois veulent faire un film
Le temps est beau Jinli route a les gens qui jouent ginkgos tas
Les cinq dernières minutes pour attacher le public sur la grande salle de conférence sur le football du campus aux enfants d'apprendre à ne pas abandonner
cafard recherche chinois jeunes scientifiques démarche, a développé une démarche de robot multi-pattes et modèle mouvement