Я думал о сортировке алгоритмов в программном обеспечении и возможных способах преодоления препятствия O(nlogn)
. Я не думаю, что это можно отсортировать быстрее в практическом смысле, поэтому, пожалуйста, не думайте, что я это делаю.
С учетом сказанного, похоже, что почти все алгоритмы сортировки, программное обеспечение должно знать положение каждого элемента. Что имеет смысл, иначе, как бы он знал, где разместить каждый элемент в соответствии с некоторыми критериями сортировки?
Но когда я пересек это мышление с реальным миром, центрифуга не имеет представления о том, в каком положении находится каждая молекула, когда она "сортирует" молекулы по плотности. На самом деле, он не заботится о положении каждой молекулы. Однако он может сортировать триллионы на триллионы предметов за относительно короткий промежуток времени из-за того, что каждая молекула следует за плотностью и гравитационными законами, что заставило меня задуматься.
Было бы возможно с некоторыми накладными расходами на каждом node (какое-то значение или метод, привязанный к каждому из узлов), чтобы "принудительно" упорядочить список? Что-то вроде центрифуги, где только каждый элемент заботится об относительном положении в пространстве (по отношению к другим узлам). Или это нарушает какое-то правило при вычислении?
Я думаю, что один из важных моментов, поднятый здесь, - это квантово-механические эффекты природы и то, как они применяются параллельно всем частицам одновременно.
Возможно, классические компьютеры по сути ограничивают сортировку в домене O(nlogn)
, где, поскольку квантовые компьютеры могут пересечь этот порог в алгоритмы O(logn)
, которые действуют параллельно.
Точка, что центрифуга в основном представляет собой параллельный вид пузыря, кажется правильной, что имеет временную сложность O(n)
.
Я предполагаю, что следующая мысль заключается в том, что если природа может сортироваться в O(n)
, почему компьютеры не могут быть?