有2个txt文件,数据在100000条左右,基本不会超过这个数
A文件格式为:
"091224000001","369416984474621039","张1","张1、李1","福州欣创摩尔","1"
B文件格式为:
"771366745154366793","张1","张1、李1","1","2009-12-23 16:36:41","福州欣创摩尔","95740551270"AB文件中每一行算一条记录设A[0]表示A数据的第一个值091224000001,每个值用“,”分隔,B[0]也是一样的符合以下条件之一则算匹配:
1、A[1]=B[0]
2、A[2]=B[1]
3、A[3] 包含 B[1]
4、B[2] 包含 A[2]请大家设计一个速度最快的算法,共同探讨一下
A文件格式为:
"091224000001","369416984474621039","张1","张1、李1","福州欣创摩尔","1"
B文件格式为:
"771366745154366793","张1","张1、李1","1","2009-12-23 16:36:41","福州欣创摩尔","95740551270"AB文件中每一行算一条记录设A[0]表示A数据的第一个值091224000001,每个值用“,”分隔,B[0]也是一样的符合以下条件之一则算匹配:
1、A[1]=B[0]
2、A[2]=B[1]
3、A[3] 包含 B[1]
4、B[2] 包含 A[2]请大家设计一个速度最快的算法,共同探讨一下
解决方案 »
- webdeploymentsetup 怎么使用
- 大家帮帮忙,关于sql语句字符串拼接的问题。
- 求C# 系统手机短信解决方案,谢谢!!!
- 我是新手,高手请进来帮帮忙!
- datagrid如何绑定二维数组或特定文件中的内容
- 如何得到当前服务器的繁忙程度!
- 如何处理两个尖括号之间的内容显示到datagrid上?
- 怎样设置用超级链接打开的新窗口,没有菜单,工具,地址栏等,且能设置窗口大小?
- Crystal Report 一定要DataSet1.xsd,每个结构对应一个报表,这是否太不灵活?比如实时根据不容的查询显示不同内容的报表?
- session和application有什么区别?请详细点。。。
- 怪事,提示:由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值。
- 【急,斑竹帮偶,偶快崩溃了!】win2003服务器上生成excel 后下载 报:拒绝访问
system.io.streamwrite sw = new system.io.streamwrite(path);
strin s = sw.write();
sw.close();
return s;
2.从前往后遍历,如果A[1]=B[0]则验证2、3、4是否符合。不过10万条数据,数据量挺少的。
1、A[1]=B[0]
2、A[2]=B[1]
3、A[3] 包含 B[1]
4、B[2] 包含 A[2]一。条件a:由于(A[3] 包含 B[1])&& (A[2]=B[1]),那最起码是(A[3]包含A[2]),
同理(B[2] 包含 B[1]).
所以可以分别对A,B文件按条件a进行过滤,那么数据量就少了很多,
之后A按A[1]排序,B按B[0]排序(从小到大);
如果为了减小读写IO,那么可以直接存在内存中进行排序。
对于过滤后的数据,如果上面的2满足,那么3,4也就满足了。
二。条件b:同时打开A,B文件(或者已经在内存中),IF(A[1] > B[0]), 那么B文件读下一条(或内存中下一个记录);ELSE IF(A[1] < B[0]),那么A文件读下一条(或内存中下一个记录);ELSE 判断A[2]是否等于A[1],是则输出即可,不是则(A读下一条或者B读下一条)。