如何实现两个集合之间差集的算法


有两个集合分别有n个和m个元素,n和m数量级相差大,比如n=1000,m=1000000,如果集合里面全部为数字,怎么算求出两个集合之间的差集。
原来我想的办法是把两个集合分别进行快速排序,时间平均复杂度分别为nlogn和mlogm,然后遍及n集合,依次去和m集合进行比较,可以分三种情况,然后就可以求出交集。是否有更好的办法求出两个集合之间的差集?

c php 算法 C++

西行痔雄雄子 12 years ago

排序取差集是一种方法,但效率不高
可以考虑用空间换时间,把元素生成hash,通过hash来比较差集,这种方法我认为效率较优

senieN answered 12 years ago

Your Answer