1

真珠のプログラミング 問題 7 は、磁気テープ4000 x 4000に保存された行列の転置に関するものです。私の解決策は、単純に一時変数を使用して、との内容を交換することでした。 著者によって与えられた解決策は、私を少し混乱させました。彼は私たちがすべきだと言います:
a[i][j]a[j][i]

  1. 行と列のインデックスをそれぞれに追加します
  2. マトリックス内のレコードを行ごとに並べ替える
  3. 追加されたインデックスを削除します。

なぜこれを成し遂げるのにそんなに苦労しなければならないのですか?磁気テープと関係ありますか?

4

2 に答える 2

1

I think magnetic tapes means: to find one certain element, you have to travel from the beginning to that element.

But I have difficulty in understanding "what is system tape sort" and "why it works".

于 2011-12-31T09:06:50.853 に答える
1

この演習の意味は次のようなものだと思います。

  1. その古い時代のコンピューターには、そのサイズの行列を保持するのに十分な RAM がありませんでした。したがって、提案されたスワッピング方法は実行可能ではありません。このような大きな行列を転置するには、外部メモリ ストレージ、つまり磁気テープを活用する必要があります。

  2. ただし、テープの読み書きはかなり遅いです。ただし、テープはシリアル ストレージ デバイスです。したがって、シリアルで読み書きすると、多くの時間を節約できます。

  3. このウィキペディアのページで述べられているように、マージソートは要素にアクセスする方法のため、このようなシリアル化ストレージに非常に適しています。したがって、「システム テープ ソート」とは、テープでのマージ ソートを意味していると思います。

以上の 3 点を頭に入れておけば、この演習は理解できると思います。

于 2013-12-03T15:08:50.940 に答える