大学の課題にマージソートを使用して、データベースの外部ソーティングアルゴリズムを(Cで)実装しようとしています。使用可能なメモリはbuffSize
ブロックです。このリンクはとても役に立ちました:
http://web.eecs.utk.edu/~huangj/CS302S04/notes/external-sorting2.html
しかし、私の問題は、アルゴリズムのフェーズ1の擬似コードのこの行に関するものです。
sort array a using an in-memory algorithm like quicksort
buffSize
自分のスペース以外のメモリを使用する権利がないためa
、リンクの配列を割り当てることができない場合、それらのブロックに含まれているレコードを並べ替える(そして一時的な実行ファイルに保存する)にはどうすればよいですか? 、メモリ内の並べ替え手順(クイックソートなど)を使用します。その場合の私のレコードは、連続した配列ではなく、連続していないメモリに配置されたブロックにあり、qsortを直接適用することはできません。ヒントはありますか?