求位置邻接的算法问题

ecivilian 2002-10-23 01:06:39
有一矩阵,矩阵中随机地布了一些数据(数据可疏可密),未布数据的格子中为空.现在指定任一为空的格子,求出所有和该格子相邻接的(对角相邻不算)所有为空的格子.(与指定位置邻接是指该位置经过n(n>=1)个相邻(上下左右)的为空的格子,能到达指定的位置).
本人想用回溯法实现,不知各位有没有更好的办法?
...全文
72 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
scalene 2002-10-24
  • 打赏
  • 举报
回复
My mailbox: scalene@163.net
kbsoft 2002-10-24
  • 打赏
  • 举报
回复
兄弟,你也在线啊。我很喜欢研究问题
有空联系我msn: bing0672@Hotmail.com
scalene 2002-10-24
  • 打赏
  • 举报
回复
没想反驳你,只是我觉得我写的跟回溯没什么关系。如果一块(所有邻接的点称为块)的点数为l,那么我的算法就会挨个判断每一个点,如果只考虑判断的次数,计算次数即为4*l(和n好象没什么关系)。
kbsoft 2002-10-24
  • 打赏
  • 举报
回复
不会吧?

你好象是反驳偶的”“只能用回溯了”——我写的就是循环啊!“啊!
回溯实现有N中方法,不一定非要递归啊
scalene 2002-10-24
  • 打赏
  • 举报
回复
我的算法和递归方法计算次数应该是一样的。
scalene 2002-10-24
  • 打赏
  • 举报
回复
我没有说不是啊。是你要跟我争的。我只是说可以用循环而不用递归。
kbsoft 2002-10-24
  • 打赏
  • 举报
回复
其实你的方法也是搜索,本质上都无法改变起指数复杂度,不信你可以做做看
本质都是搜索
ecivilian 2002-10-24
  • 打赏
  • 举报
回复
因为上面只是矩阵, 有没有更好的方法。 一定给分。
scalene 2002-10-23
  • 打赏
  • 举报
回复
倒!
kbsoft 2002-10-23
  • 打赏
  • 举报
回复
今天没时间了,改天继续
scalene 2002-10-23
  • 打赏
  • 举报
回复
faint, 我算每一个点的邻接点难道不是这么算吗?我还跑到n^n阶的鬼才知道是什么空间里去搜索吗?
scalene 2002-10-23
  • 打赏
  • 举报
回复
n^n难道就是学过计算复杂性理论的高手给出的分析吗?真是莫名其妙。
kbsoft 2002-10-23
  • 打赏
  • 举报
回复
回溯法不一定非要用递归!!

迭带回溯不行吗?!

而且此题只要求“求出所有和该格子相邻接的(对角相邻不算)所有为空的格子”
以此条件作为剪枝条件之一将会大大提高效率
scalene 2002-10-23
  • 打赏
  • 举报
回复
“真不知道你们学过计算复杂性理论没有”——别太自以为是吧,真不知道你看懂我的算法没有?先不和你争堆栈的问题,你倒是说说我的算法哪里比你用递归多计算了一个点?
scalene 2002-10-23
  • 打赏
  • 举报
回复
对于1000*1000的矩阵,你用递归给我实现一个看看!
kbsoft 2002-10-23
  • 打赏
  • 举报
回复
真不知道你们学过计算复杂性理论没有
scalene 2002-10-23
  • 打赏
  • 举报
回复
我的算法查找次数应为(块内的点数*4)
oldgameman 2002-10-23
  • 打赏
  • 举报
回复
在多维向量中求第N个空格到沿一个方向走所遇到的第一个有数据的格子之间所有的空格的个数吗?
很简单,用循环(回溯)最方便
用递归也不是不可以
我想想看看
scalene 2002-10-23
  • 打赏
  • 举报
回复
??找邻接点只要找上下左右即可,n^n?哪里算出来的?我ft!
kbsoft 2002-10-23
  • 打赏
  • 举报
回复
"本人想用回溯法实现,不知各位有没有更好的办法?"
即:算法复杂度要降低!

此题用剪裁即可做的很好。

而scalene(南瓜汤)的复杂度为O(n^n),设计到的遍历太多
加载更多回复(11)

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧