Myślałem o sortowaniu algorytmów w oprogramowaniu i możliwych sposobach pokonania O(nlogn)przeszkody. Nie sądzę, że w praktyce możliwe jest szybsze sortowanie, więc proszę, nie myśl, że tak.
Mając to na uwadze, wydaje się, że w przypadku prawie wszystkich algorytmów sortowania oprogramowanie musi znać położenie każdego elementu. Co ma sens, w przeciwnym razie skąd miałoby wiedzieć, gdzie umieścić każdy element według jakichś kryteriów sortowania?
Ale kiedy skrzyżowałem to myślenie ze światem rzeczywistym, wirówka nie ma pojęcia, w jakiej pozycji znajduje się każda cząsteczka, kiedy „sortuje” cząsteczki według gęstości. W rzeczywistości nie dba o pozycję każdej cząsteczki. Jednak może sortować biliony na tryliony elementów w stosunkowo krótkim czasie, ze względu na fakt, że każda cząsteczka podlega prawom gęstości i grawitacji - co dało mi do myślenia.
Czy byłoby możliwe, gdyby jakiś narzut na każdym węźle (pewna wartość lub metoda przypisana do każdego z węzłów) „wymusił” kolejność na liście? Coś w rodzaju wirówki, w której tylko każdy element dba o swoje względne położenie w przestrzeni (w stosunku do innych węzłów). A może to narusza jakąś zasadę obliczeniową?
Myślę, że jedną z najważniejszych kwestii, o których tu mowa, są kwantowe efekty natury i ich zastosowanie równolegle do wszystkich cząstek jednocześnie.
Być może klasyczne komputery z natury ograniczają sortowanie do domeny O(nlogn), gdzie komputery kwantowe mogą przekroczyć ten próg do O(logn)algorytmów działających równolegle.
Fakt, że wirówka jest zasadniczo równoległym sortowaniem bąbelkowym, wydaje się być poprawny, co ma złożoność czasową wynoszącą O(n).
Wydaje mi się, że następną myślą jest to, że jeśli natura może sortować O(n), dlaczego nie mogą tego robić komputery?