Comic: Trois « merveilleux » algorithme de tri

Auteur | petit gris

Source | petit gris programmeur (ID: chengxuyuan xi aohui)

Dans le monde de l'algorithme, il existe de nombreux algorithmes de tri efficaces, tels que tri rapide, le tri par fusion, seau sorte les ...... très Améliorer la performance du programme.

Cependant, il y a une partie de l'algorithme de tri plus exotiques, ils ne peuvent ni obtenir un rendement élevé, il n'y a pas une bonne lisibilité. Quel est le sens de leur existence qui est-il? Parce intéressant.

Maintenant, nous allons introduire trois types d'algorithme de tri « fantasque » dans.

Trier sommeil

Le lendemain ----- -----

public static void sleepSort (array int) {

for (int num: array) {

new Thread (- >  {

try {

Thread.sleep (num);

} Catch (e InterruptedException) {

e.printStackTrace;

}

System.out.println (num);

.}) Démarrer;

}

}

public static void main (args String) {

tableau int = {10,30,50,60,100,40, 150 , 200, 70};

sleepSort (réseau);

}

------------

(Petit gris mettre votre rhubarb propre code pour afficher)

Trier singe

Peut-être dit plus abstraite, laissez-nous vous montrer:

perle sorte

Abacus vu des gens le savent, il y a beaucoup de perles rondes sont enfilées sur des poteaux en fin Abacus, comme suit:

Si l'abaque de mettre en place, ce qui se passera alors? Petites perles sur le boulier diminueront par gravité au fond de l'abaque, comme suit:

Qu'est-ce que cela signifie? Nous expliquons attentivement:

Avant les allées et venues de perles, chaque perle a plusieurs horizontal? Comme indiqué plus haut, le nombre de chaque rangée de billes sont 3, 2, 4, 5, 1, le nombre de colonnes est désordonnée.

Lorsque les perles tombent, ils ont chacun plusieurs perles horizontales? Comme indiqué plus haut, le nombre de billes par rangée est 1, 2, 3, 4, 5, la série est commandé!

Ainsi, nous pouvons simuler le principe de perles tombant sur un ensemble d'entiers positifs pour trier? La réponse est oui.

Nous pouvons utiliser le tableau en deux dimensions pour simuler le boulier, les perles ont un ensemble d'emplacement à 1, pas d'emplacement de perles est réglé sur 0. Ainsi, un tableau désordonné d'entiers peut être converti en un tableau à deux dimensions des éléments suivants:

Ensuite, nous simulons le processus de l'enfant Abacus perles chute, de sorte que tous les éléments de fond 1 sont tombés sur un tableau à deux dimensions:

Enfin, après avoir déposé « Abacus » dans un tableau ordonné unidimensionnelle:

15 ans readme programmeur: 8 affecte ma carrière compétence importante
Précédent
Shanghai est en cours de retrouver Internet « décennie perdue »
Prochain
« Les mathématiques ne fonctionne pas, mais aussi capable Diansha? » L'enquêteur + CTO: faire sont aux prises
Stanford première femme présidente chinoise, « peau artificielle » donne à la machine et les toucher handicapées
Windows 10 et les utilisateurs domestiques odorants, super-moitié « accrocher » pour arrêter plus de Windows 7
Les billets? Le travail? Objet? Python élégant vous apprendre à résoudre trois problèmes Année
L'abandon du Dr Stanford, changeant le monde dans 3 domaines, le sommet de la technologie Madman Musk
La Chine a développé indépendamment le langage de programmation « Mulan » et est vêtu d'une peau rouge navigateur noyau « étranger »?
Pourquoi avons-nous écrire une architecture d'apprentissage de la machine avec Go, mais ne pas Python?
Il est temps d'introduire derrière Spring Boot / Nuage de luxe de l'équipe de R & D
Pandas traitement des données trois tours, vous serez un peu à bord?
200000 serveur complet QQ sur le nuage
visite du Hubei Xiangyang: l'ancienne ville de marée de printemps « de récupération »
observation de sport | Tokyo Jeux olympiques remise, l'armée chinoise quelques larmes heureuses