物理复杂度为O(1),但是计算机没法实现的算法

本文收集一些物理复杂度是O(1),但是计算没法在此复杂度下实现的某些有趣的算法。

1、珠排序

首先了解下基本概念:


图1

图1的两个数据3和2,分别用两颗珠子表示,每个珠子叫做bead,如此,N可以用N个bead来表示之。


图2

图2中(a)表示了2个数据4和3,现在将这两个数字的珠子连成串,就像算盘一样,垂直方向的线可以想象成算盘上链接算盘珠的细杆,珠排序的思想就是让这样的物理结构作垂直落体运动,(a)中4的最后一个珠子会落到数字3最后一个珠子的后面,即(b),这样就得到了一个排序,同样的,(c)排序3,2,4,2,得到的结构如(d)。理想情况下,这种算法的复杂度为O(1),因为每个珠子都是独立的,能不能下落取决于下方有没有空间,整个算法过程需要重力支持,是在物理层面上的。

O(1)的复杂度在计算机上是没法实现的,依个人之见,是因为计算机是没法根据重力来判断,计算机解决的模型一定是某种数学模型,类似这样的物理模型是没法转换到某种数学模型上,因此计算机没法实现之。


2、最短路径算法

最短路径算法也是古老的算法问题,几乎每本算法书都有讲解之,这里也不多说。这里我们在物理上能不能有一种复杂度为O(1)的算法。假设把每个节点想成一个球,节点之间的权值想成球与球之间用线连接的线长,找到两点的最短路径,我们只要把头节点(source)和尾节点(sink)用力拉直,那么处在直线上的球就是最短路径经过的节点。

这很符合物理规律,不过在计算机上却没法用O(1)实现。


未完待续...






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值