在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3227|回复: 10

[求助] 请教一个算法

[复制链接]
发表于 2019-11-26 14:18:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
假设我有两组数据
一组是pin 的坐标 A {a1 x1 y1} {a2 x2 y2}.....
一组是pad坐标 B {llx1 lly1 rtx1 rty1} .....
现在目标是如果A 在B 里就输出 某A in B, 如果B里没有pin 就单独输出B 坐标
目前我是用foreach (foreach(if (print)))
但是这种结构会把不符合条件的输出多次
请教大神这个该用什么算法

谢谢
 楼主| 发表于 2019-11-26 18:18:26 | 显示全部楼层
还是得靠自己啊。
在后面加一个变量,在第一个foreach 里面判断这个变量要不要输出

但是这种算法很慢,没有效率
还是希望有人提供一个更有效率的算法
发表于 2019-11-27 11:30:58 | 显示全部楼层
问一下楼主用什么语言来实现呢,skill吗
发表于 2019-11-27 11:34:30 | 显示全部楼层
如果只是想去掉重复的输出 对最后结果做一下unique就好啦;
除非你的pad和pin是一一对应, 只要不match立刻输出, 然后break 进入下一次循环; 否则pin就会一个个的比过去 输出很多次。
 楼主| 发表于 2019-11-27 13:03:35 | 显示全部楼层


rioshiina 发表于 2019-11-27 11:34
如果只是想去掉重复的输出 对最后结果做一下unique就好啦;
除非你的pad和pin是一一对应, 只要不match立刻 ...


unique 怎么做?
我加了break 但是速度还是很慢
我有25万个label ,26万个pad
需要找到没有label 的位置,同时需要把有label的pad 中心点输出
 楼主| 发表于 2019-11-28 11:18:04 | 显示全部楼层


GhostHunter 发表于 2019-11-27 11:30
问一下楼主用什么语言来实现呢,skill吗


没有用skill
用tcl + calibredrv
发表于 2019-12-3 15:29:44 | 显示全部楼层
第一反应是用hash函数
你可以对下table相关函数
先对每个pad判定一遍有什么pin 再吧pin和pad存到一个hash函数保存 再对外判定输出
发表于 2019-12-4 16:48:49 | 显示全部楼层
tcl里面有lsearch
 楼主| 发表于 2019-12-5 18:04:45 | 显示全部楼层


hccaiwh 发表于 2019-12-3 15:29
第一反应是用hash函数
你可以对下table相关函数
先对每个pad判定一遍有什么pin 再吧pin和pad存到一个hash函 ...


啊,还要用hash啊
tcl 里怎么用hash?

 楼主| 发表于 2019-12-5 18:06:13 | 显示全部楼层


lsearch 好像不行哦,因为后面要给一个匹配条件。
而且我还需要判断点坐标 是否在一个rectangle区域内。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-31 14:52 , Processed in 0.025004 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表