Saya berpikir tentang menyortir algoritme dalam perangkat lunak, dan cara yang mungkin dilakukan seseorang untuk mengatasi O(nlogn)
hambatan tersebut. Menurut saya tidak mungkin untuk mengurutkan lebih cepat dalam arti praktis, jadi tolong jangan berpikir saya melakukannya.
Dengan demikian, tampaknya dengan hampir semua algoritma pengurutan, perangkat lunak harus mengetahui posisi setiap elemen. Mana yang masuk akal, jika tidak, bagaimana cara mengetahui di mana menempatkan setiap elemen menurut beberapa kriteria penyortiran?
Tetapi ketika saya menyilangkan pemikiran ini dengan dunia nyata, sentrifus tidak tahu di mana posisi setiap molekul ketika ia 'menyortir' molekul berdasarkan kepadatan. Faktanya, ia tidak peduli dengan posisi setiap molekul. Namun ia dapat memilah triliunan demi triliunan benda dalam waktu yang relatif singkat, karena fakta bahwa setiap molekul mengikuti hukum kerapatan dan gravitasi - yang membuat saya berpikir.
Apakah mungkin dengan beberapa overhead pada setiap node (beberapa nilai atau metode ditempelkan pada setiap node) untuk 'memaksa' urutan daftar? Sesuatu seperti centrifuge, di mana hanya setiap elemen yang peduli tentang posisi relatifnya di ruang angkasa (dalam kaitannya dengan node lain). Atau, apakah ini melanggar beberapa aturan dalam perhitungan?
Saya pikir salah satu poin besar yang diangkat di sini adalah efek mekanis kuantum dari alam dan bagaimana efek tersebut berlaku secara paralel pada semua partikel secara bersamaan.
Mungkin komputer klasik secara inheren membatasi penyortiran ke domain O(nlogn)
, di mana komputer kuantum mungkin dapat melewati ambang itu ke dalam O(logn)
algoritma yang bertindak secara paralel.
Poin bahwa centrifuge pada dasarnya adalah jenis gelembung paralel tampaknya benar, yang memiliki kompleksitas waktu O(n)
.
Saya kira pemikiran berikutnya adalah jika alam dapat memilah O(n)
, mengapa komputer tidak bisa?