各位高手,我想求教:
两个数组间的快速合并:
如:两个数组大小不一样:
dim a(3) , b(2) as string
a(0)="a" : a(1)="g" : a(2)="v" : a(3)="h"
b(0)="g 5" : b(1)="v 6" : b(2)="h 8"合并后的数组为:
a(0)="a"
a(1)="g 5"
a(2)="v 6"
a(3)="h 8" 我想把数组b里的数据替换掉数组a里相应的数据,通过循环我写的代码速度较慢,求教高手快速地合并代码,谢谢!!!
两个数组间的快速合并:
如:两个数组大小不一样:
dim a(3) , b(2) as string
a(0)="a" : a(1)="g" : a(2)="v" : a(3)="h"
b(0)="g 5" : b(1)="v 6" : b(2)="h 8"合并后的数组为:
a(0)="a"
a(1)="g 5"
a(2)="v 6"
a(3)="h 8" 我想把数组b里的数据替换掉数组a里相应的数据,通过循环我写的代码速度较慢,求教高手快速地合并代码,谢谢!!!
对照例子写的,
for i=0 to ubound(b)
s=left(b(i))
for j=0 to ubound(a)
if left(a(j))=s then
a(j)=b(i)
goto nt
end if
next
nt:
next
Dim a(3), b(2) As String
a(0) = "a": a(1) = "g": a(2) = "v": a(3) = "h"
b(0) = "g 5": b(1) = "v 6": b(2) = "h 8"
Dim d(127) As String, i As Integer
For i = 0 To UBound(b)
d(Asc(Left(b(i), 1))) = b(i) '建立索引
Next i
Dim n As Integer
For i = 0 To UBound(a)
n = Asc(a(i))
If Len(d(n)) Then a(i) = d(n) '替换
Next i
应该比较快,次数m+n,若b()的首字符都是字母,那么d()的空间还可缩小,你也不会在意这几十个内存吧。