我正在考虑对软件中的算法进行排序,以及可能克服O(nlogn)
障碍的可能方法。从实际意义上讲,我认为不可能进行更快的排序,所以请不要以为我可以。
话虽如此,看来对于几乎所有的排序算法,软件都必须知道每个元素的位置。否则有意义的是,它将如何知道根据某些排序标准将每个元素放置在何处?
但是,当我将这种想法与现实世界相冲突时,离心机不知道每个分子在按密度对分子进行“分类”时所处的位置。实际上,它并不关心每个分子的位置。但是,由于每个分子都遵循密度和引力定律,因此它可以在相对较短的时间内对数万亿个项目进行分类-这让我思考。
在每个节点上有一些开销(附加到每个节点上的某个值或方法)是否有可能“强制”列表的顺序?类似于离心机,其中只有每个元素都在乎其在空间中的相对位置(相对于其他节点)。或者,这是否违反了计算中的某些规则?
我认为这里提出的主要观点之一是自然界的量子力学效应以及它们如何同时并行应用于所有粒子。
也许经典计算机会固有地将排序限制在的范围内O(nlogn)
,因为量子计算机可能能够将阈值越过进入O(logn)
并行运行的算法。
离心机基本上是平行气泡排序的观点似乎是正确的,它的时间复杂度为O(n)
。
我想下一个想法是,如果自然可以分类O(n)
,为什么计算机不能?