OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

アルゴリズム・ネストループ方式って何?

  • すぐに回答を!
  • 質問No.212214
  • 閲覧数471
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 71% (23/32)

プログラムの性能改善の課題が出ているのですが、アルゴリズムとしてネストループ方式、もしくはその延長上のものを用いること、とあります。
図書館でアルゴリズム関係の本を見てみたのですがどこにもネストループに関して説明がなく、大変困っています。
プログラム自体は、ファイルを読み込んで、表示させるだけの簡単なものです。
簡単に抜き出すと、

for (i=0;; i++){
if ((st = read_a(fd_name, &name_buf, i)) <=0) break;
for (j = 0;; j++){
if ((st =read_a (fd_home,&home_buf ,j)) <= 0) break;
if (!strcmp(name_buf.a , home_buf.b)){
printf("%s =%s (%s)\n", name_buf.a, name_buf.c ,
home_buf.c);
}
}
if (st <0) break;

といったものです。
注意事項として、break文を入れる手法を使わないこととあります。
お願いします。ネストループって何でしょう?教えてください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル10

ベストアンサー率 42% (53/126)

ネストループはリレーショナルデータベースでジョインを行うアルゴリズムと
してよく知らせています。
RDBMS で使われるネストループのアルゴリズムを簡単に説明すると、ファイル
でも表でもいいんですが2つあって、次のような感じのデータが入っていたと
します。

ファイル(表)1
ID 名前
3 佐藤
1 鈴木
5 中村
2 高橋
:

ファイル(表)2
ID 住所
1 東京都
2 大阪府
3 長野県
4 神奈川県
5 北海道
:

ここから

名前 住所
佐藤 長野県
鈴木 東京都
中村 北海道
高橋 大阪府
:

という出力を得る場合に、ファイル(表)1の1行目を読み込んで ID が
同じ行をファイル(表)2の先頭行から探していき、ID が同じ行が見つ
かったら、ファイル(表)1とファイル(表)2のデータを出力し、ファイル
(表)1の次の行の ID と同じ ID を持つ行をファイル(表)2の先頭行から
再度読み込んで探し、.... という繰り返しをするアルゴリズムです。
この方法だと、ファイル(表)1の行数 * ファイル(表)2の行数回の
比較が必要であるのと、ファイル(表)2は1度読み込んだ行をもう一度
読む必要があるので非効率的です。
データがソート済みであったりするともっと効率的なソートマージという
アルゴリズムが適用できます。またハッシュを使ったりするようなアルゴリズム
もあります。
補足コメント
kanyako

お礼率 71% (23/32)

ありがとうございました。
なんとかレポートは完成しました。(^_^)/
投稿日時 - 2002-02-12 14:20:03
お礼コメント
kanyako

お礼率 71% (23/32)

回答ありがとうございます。(^_^)
なるほど。IDをファイル1から一行ずつ読み込んでファイル2とあわせていけばいいのですね。
とてもわかりやすかったです@

レポートなんで、効率とかは気にしません。自信のある人はハッシュクラスタリングを実装しても良い、とか先生は言うけど自信なんてないし(・_・;)

このくらいのプログラミングならできるかな・・・?
卒業がかかっているんでホントありがたかったです。

少しいじってみます。わからなくなったらまたお願いします。
投稿日時 - 2002-02-07 13:34:41
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 47% (11786/24626)

ある文の中に同じ文を組み込むことをネスト(入れ子)と呼びます。 ですからネストループとはループの中にループを入れた物です。
ある文の中に同じ文を組み込むことをネスト(入れ子)と呼びます。
ですからネストループとはループの中にループを入れた物です。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ