社区
C语言
帖子详情
求位置邻接的算法问题
ecivilian
2002-10-23 01:06:39
有一矩阵,矩阵中随机地布了一些数据(数据可疏可密),未布数据的格子中为空.现在指定任一为空的格子,求出所有和该格子相邻接的(对角相邻不算)所有为空的格子.(与指定位置邻接是指该位置经过n(n>=1)个相邻(上下左右)的为空的格子,能到达指定的位置).
本人想用回溯法实现,不知各位有没有更好的办法?
...全文
72
31
打赏
收藏
求位置邻接的算法问题
有一矩阵,矩阵中随机地布了一些数据(数据可疏可密),未布数据的格子中为空.现在指定任一为空的格子,求出所有和该格子相邻接的(对角相邻不算)所有为空的格子.(与指定位置邻接是指该位置经过n(n>=1)个相邻(上下左右)的为空的格子,能到达指定的位置). 本人想用回溯法实现,不知各位有没有更好的办法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
图的
邻接
矩阵
算法
无向图的
邻接
矩阵是关于左上右下对角线对称的,有向图不一定对称 先得理解矩阵描述的图,或者明白图的矩阵描述概念。 图的
邻接
矩阵存储结构 #define MAX 100 typedef struct{ char vexs[MAX]; //顶点表 int arc[MAX][MAX];//
邻接
矩阵,也就是边的关系表 int numVertexes,numEdges;//图中的定点数和边数 }MGaph; 根据
邻接
矩阵的定义,可得到建立图的
邻接
矩阵
算法
。
算法
描述:首先得到图的顶点数和边数、然后按照顶.
C语言:将
邻接
矩阵转换为
邻接
表
算法
将
邻接
矩阵转换为
邻接
表
算法
图
邻接
矩阵
算法
邻接
矩阵比较好理解,这里就不记录了,主要是
邻接
表,比较难理解,
邻接
表存储类型定义: typedef struct ANode{ int adjvex; //该边的终点编号 struct ANode *nextarc; //指向下一条边的指针 InfoType weight; //该边的权值等信息} ArcNode; typedef struct Vnode{ Vertex data; //顶点信息 ArcNo
Dijkstra基于
邻接
表
算法
C++实现
为了解决单源最短路径
问题
,利用贪心
算法
,将顶点集合V划分为两部分,集合S和V-S,先
求
出以源点u
邻接
最短的一条路径,作为已确定顶点路径将顶点加入到S中,则S为已确定路径顶点集合,在V-S集合中更新与前面已确定点的
邻接
点若以新前驱路径距离更少,则更新,之后回到前面在V-S中找长度最短的路径顶点,加入S中,知道V-S中的集合为空。 使用
邻接
表在更新
邻接
点路径长度的时候更加方便 #include&...
C语言:将
邻接
表转换成
邻接
矩阵
算法
将
邻接
表转换成
邻接
矩阵
算法
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章