Je pensais aux algorithmes de tri dans les logiciels et aux moyens possibles de surmonter l' O(nlogn)
obstacle. Je ne pense pas qu'il soit possible de trier plus rapidement dans un sens pratique, alors ne pensez pas que je le fasse.
Cela dit, il semble qu'avec presque tous les algorithmes de tri, le logiciel doit connaître la position de chaque élément. Ce qui a du sens, sinon comment saurait-il où placer chaque élément selon certains critères de tri?
Mais quand j'ai croisé cette pensée avec le monde réel, une centrifugeuse n'a aucune idée de la position de chaque molécule lorsqu'elle «trie» les molécules par densité. En fait, il ne se soucie pas de la position de chaque molécule. Cependant, il peut trier des milliards et des milliards d'articles dans un laps de temps relativement court, en raison du fait que chaque molécule suit les lois de densité et de gravitation - ce qui m'a fait réfléchir.
Serait-il possible avec une certaine surcharge sur chaque nœud (une valeur ou une méthode attachée à chacun des nœuds) de «forcer» l'ordre de la liste? Quelque chose comme une centrifugeuse, où seul chaque élément se soucie de sa position relative dans l'espace (par rapport aux autres nœuds). Ou est-ce que cela viole une règle de calcul?
Je pense que l'un des grands points soulevés ici est les effets de la mécanique quantique de la nature et la façon dont ils s'appliquent en parallèle à toutes les particules simultanément.
Peut-être que les ordinateurs classiques restreignent intrinsèquement le tri au domaine de O(nlogn)
, où les ordinateurs quantiques peuvent être capables de franchir ce seuil en O(logn)
algorithmes agissant en parallèle.
Le fait qu'une centrifugeuse soit essentiellement un tri à bulles parallèle semble être correct, ce qui a une complexité temporelle de O(n)
.
Je suppose que la prochaine pensée est que si la nature peut trier O(n)
, pourquoi pas les ordinateurs?