经典多线程问题求,算法 ( 积分: 100 )

  • 主题发起人 主题发起人 delphi5988
  • 开始时间 开始时间
D

delphi5988

Unregistered / Unconfirmed
GUEST, unregistred user!
现有A,B两数组,数组长度是随机的,A与B数组对比,求一算法,求出A数组中含有B数组的部分.并把A数组中没有的部分加入到A数组中,简单的说是,如果A数组没有则加,有则不加,但要标出记号"已存在"
例如
A数组是1.5.4.7.8.9.a.b.h.y
B数组是7.8.9.a.70,12,13
请大家帮帮我呀,谢谢了
 
你的问题和多线程有什么关系???还要经典。。。。。
如果两个数组不大(两个数组大小相乘没有在达到10M以上),不用考虑效率的话,直接用两从循环就可以做到了。
 
我想用多线程,数组很大,上面只是一个例子,兄弟们帮帮我呀
 
思路:
先把A、B组中元素按ascii码排序
然后循环B组中的元素,和A组中比较如果相同则标记,否则和下一个比较,如果小则继续下一个,大则纪录到一个新组(组C)中,下一个B组元素则继续A组中当前元素位置继续向下比较(因为先排序所以不必重头比较)
最后把C组中的数插入A组
想不出这个和多线程有什么关系
今天要闪了,没时间,改天再把代码写出来
 
我的想法是将数组B分为若干个部分,每个部分可用一个线程来检测在数组A中是否存在;
另用一个与A数组原始长度相等的Bool型数组来标记"已存在",当然,既然用多线程,就得注意并发了;
至于多线程的用法,可以参考一下Delphi安装目录下Demos/Threads中的例子.
 
不知道楼主的问题解决了没有?如果解决,很想听下方法。
 
我的问题没有解决呀,晕.
 
后退
顶部