VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/08/02(Tue) 19:30
投稿者chama
Eメール
URL
タイトル配列の大きさを減らしたい

こんにちは。教えていただきたいことがあります。

A(A_MAX)とB(B_MAX)という配列があり、Bと等しいAの要素を選択したいと考えてます。
ここで、A,Bの両配列とも各々で重複した値はないとします。

例:A(1)=3,A(2)=1,A(3)=2
  B(1)=5,B(2)=3,B(3)=2,B(4)=4,B(5)=1
  ※A(1)はいずれのA(j)とも重複しない。A(1)≠A(j)

ごく単純に、
for i= 1 to B_MAX
   for j= 1 to A_MAX
      if(A(j) = B(i))then
         ・A(j)の格納操作
         exit for
       endif
   next j
next i
としました。

A,Bの両配列とも大きさが10,000程度あるので、めちゃくちゃ処理時間がかかってしまいます。
そのため、一度ヒットしたB(i)を比較対象から外したいと考えてます。
つまり、
1.A(1)と等しいB(i)を見つけるループ → 全てのB(i)を対象として見つける(B(2)がヒット)
2.A(2)と等しいB(i)を見つけるループ → B(2)を除去したB(i)を対象として見つける
というようにしたいのですが、配列の大きさを小さくする方法が分からず、困ってます。

動的配列では配列の大きさを大きくすることはできても、小さくできないと書いてありました。
ほかに方法はないのでしょうか。

ご教示のほどお願いいたします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -