Stavo pensando agli algoritmi di ordinamento nel software e ai modi possibili per superare il O(nlogn)
blocco stradale. Non credo che sia possibile ordinare più velocemente in senso pratico, quindi per favore non pensare che lo faccia.
Detto questo, sembra che con quasi tutti gli algoritmi di ordinamento, il software debba conoscere la posizione di ogni elemento. Il che ha senso, altrimenti, come saprebbe dove posizionare ogni elemento secondo alcuni criteri di ordinamento?
Ma quando ho incrociato questo pensiero con il mondo reale, una centrifuga non ha idea in quale posizione si trovi ogni molecola quando "ordina" le molecole in base alla densità. In effetti, non si preoccupa della posizione di ogni molecola. Tuttavia può ordinare trilioni su trilioni di oggetti in un periodo di tempo relativamente breve, a causa del fatto che ogni molecola segue le leggi di densità e gravitazionali, il che mi ha fatto pensare.
Sarebbe possibile con un po 'di overhead su ogni nodo (un valore o un metodo applicato a ciascuno dei nodi) per "forzare" l'ordine della lista? Qualcosa come una centrifuga, dove solo ogni elemento si preoccupa della sua posizione relativa nello spazio (in relazione ad altri nodi). Oppure questo viola qualche regola nel calcolo?
Penso che uno dei grandi punti sollevati qui sia gli effetti della meccanica quantistica della natura e il modo in cui si applicano in parallelo a tutte le particelle simultaneamente.
Forse i computer classici limitano intrinsecamente l'ordinamento al dominio di O(nlogn)
, dove i computer quantistici possono essere in grado di attraversare quella soglia in O(logn)
algoritmi che agiscono in parallelo.
Il punto per cui una centrifuga è fondamentalmente un ordinamento a bolle parallele sembra essere corretto, il che ha una complessità temporale di O(n)
.
Immagino che il pensiero successivo sia che se la natura può ordinare O(n)
, perché non possono i computer?