EDA365电子工程师网

标题: list问题请教,如何通过最少的比较来实现X = A-(A∩B)? [打印本页]

作者: yneda    时间: 2012-8-21 09:19
标题: list问题请教,如何通过最少的比较来实现X = A-(A∩B)?
如题:
A = '(1 2 3 4 5)
B = '(1 2 3 4 6)

要现实:A-(A∩B) =>( 5 )
              B-(A∩B) =>( 6 )
我目前的代码:

foreach( itema A
      foreach(itemb B
            When( itema == itemb
                     A = remove(itema A)
                     B = remove(itemb B)
                    )
             )
        )
这样可以实现,但是比较的次数太多了,当A和B成员很多的时候,skill运行的速度那是超级的慢,请教下有没有更好的算法或者相关函数来实现,让skill运行快点,谢谢!
作者: deargds    时间: 2012-8-21 09:40
  1. A1 = setof(p A !member( p B ))
  2. B1 = setof(p B !member( p A ))
复制代码

作者: yneda    时间: 2012-8-21 16:26
这代码简洁实用,谢谢!




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2