最近我一直在考虑在排序算法中使用面向对象的设计。然而,我无法找到一种适当的方法来使这种排序算法更接近于在O(n)时间内进行排序。
好吧,这是我一个星期以来一直在想的事情。我有一组输入数据。我将为每个输入数据分配一个质量(假设输入数据为Mass类型和Sphere类型。如果我们假设所有物体都是完美的球形物体,形状与其质量成正比,那么最重的物体首先接触地面。)我将把我所有的输入数据放置在与地球相同距离的空间中。我会让他们自由落体。根据万有引力定律,最重的物体首先撞击地面。他们点击的顺序会给我排序的数据。这在某种程度上是很有趣的,但实际上,我觉得这应该是可能的使用OO,我已经学到了至今。
真的有可能用重力拉力来进行排序吗?或者我是愚蠢/疯狂的?
编辑:发现所有物体同时击中地面,所以我引入了球形物体的概念。
发布于 2010-03-22 21:18:37
嗯。重力排序。
忽略你的重力模型是错误的,让我们看看这个想法会给我们带来什么。
物理现实有10^80处理器。
如果有N/2处理器对N个对象进行排序,那么排序的实际下界就是log(N)。
如果您有多个CPU核心可用,就没有理由不能在多个线程上运行mergesort。
https://stackoverflow.com/questions/2489190
复制相似问题