|
>MatchingのアルゴリズムをDo…Loopで書かれている
>このコードはどのような意味を指すのでしょうか?
そんな難しいものではありませんよ。
配列vntList1とvntList2があり、双方のDataがSort済みであるとします。
(わかりやすいように、dataはすべて数値だとします。)
で、最初から順番に大小を比べていくわけですが、
vntList1が大きい場合には、vntList2のDataを一個進める
vntList1が小さい場合には、vntList1のDataを一個進める
双方が一致した場合には処理を行う
こんな感じです。
このようなアルゴリズムですと、Data全件をMatchingするのに
双方の配列の要素数だけLoopすることになるので、処理が高速化されます。
つまり、Loop回数は
vntList1の要素数 + vntList2の要素数 回
2重Loopして全件Matchingするときとでは速度がダンチです。
For i = 1 To UBound(vntList1)
For j = 1 To UBound(vntList2)
If vntList1(i) = vntList(j) Then
Next j
Next i
これだと、vntList1の要素数 * vntList2の要素数 回
Loopすることになりますよね?
|
|