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

投稿日: 2005/08/03(Wed) 12:29
投稿者Starfish
Eメール
URL
タイトルRe: 配列の大きさを減らしたい

> ほかに方法はないのでしょうか。

 Bを高速なアルゴリズムを使用してソートし配列Cを作成する。検索するときは、
Cをバイナリサーチで検索する。というやり方のほうが早いのではないでしょうか。

 もしも、A,Bの配列のとる値が、整数値で、かつ、ある程度の範囲(MAX値分の
配列がとれる)内であれば、値とインデックスを逆にしたテーブルを作れば、
超高速に処理できると思います。

 たとえば、

 B(1)=5,B(2)=3,B(3)=2,B(4)=4,B(5)=1

 なら

 C(1)=5,C(2)=3,C(3)=2,C(4)=4,C(5)=1

 あれ、例が悪すぎ。Bとおんなじになってしまいましたので、例を変えます。

 B(1)=3,B(2)=8,B(3)=5,B(4)=4,B(5)=1

 なら

 C(1)=5,C(2)=0,C(3)=1,C(4)=4,C(5)=3,C(6)=0,C(7)=0,C(8)=2

 こんな配列を作成しておけば、A(1)=3と等しいB(i)は、C(3)=1より
B(1)ということがすぐにわかります。


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

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

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