説明

整列装置、その制御方法、ならびに、プログラム

【課題】 順序付けが可能なデータを昇順に整列させるのに好適な整列装置等を提供する。
【解決手段】 整列装置201の入力受付部202は、データの入力を受け付け、一時記憶部203は、受け付けられたデータを所定のデータ制限に至るまで記憶し、所定のデータ制限に至るかデータの入力が完了すると、マージ部204は、一時記憶部203に記憶されたデータを昇順に整列したものを不揮発記憶部205に記憶された昇順に整列済みのデータに昇順にマージして不揮発記憶部205を更新し、消去部206は、マージ部204によるマージが終わると一時記憶部203をクリアし、データ整列の結果が不揮発記憶部205に得られる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、順序付けが可能なデータを昇順に整列させるのに好適な整列装置、その制御方法、ならびに、これらをコンピュータにて実現するためのプログラムに関する。
【背景技術】
【0002】
従来から、順序付けが可能なデータを昇順に整列させるためのソート技術については、これを高速に行うアルゴリズムが提案されている。たとえば、以下の文献に、このようなソート技術を利用したデータ検索の技術が開示されている。
【特許文献1】特開2001−034629号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
このようなソート技術は、たとえば大規模な転置ファイルを作る上で重要な技術となる。したがって、ソートを高速に行うための、様々な手法が強く求められている。
【0004】
本発明は、上記の課題を解決するもので、順序付けが可能なデータを昇順に整列させるのに好適な整列装置、その制御方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0006】
本発明の第1の観点に係る整列装置は、所定の順序付けが可能な複数のデータを昇順に整列し、入力受付部、不揮発記憶部、一時記憶部、マージ部、消去部を備え、以下のように構成する。
【0007】
ここで、入力受付部は、整列されるべきデータの入力を受け付ける。
【0008】
一方、不揮発記憶部は、当該所定の順序付けにより既に昇順に整列されたデータを、不揮発に記憶する。
【0009】
さらに、一時記憶部は、入力を受け付けられたデータを、所定のデータ量制限に至るまで、もしくは、当該データの入力が終了するまで、一時的に記憶する。
【0010】
そして、マージ部は、一時記憶部が所定のデータ量制限に至った場合、もしくは、当該データの入力が終了した場合、一時記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、不揮発記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、これら取得されたデータをマージして、不揮発記憶部に当該所定の順序付けにより昇順に整列された新たなデータとして不揮発に記憶させる。
【0011】
一方、消去部は、一時記憶部が所定のデータ量制限に至った場合、マージ部によるマージが行われた後に、一時記憶部に記憶されたデータを消去する。
【0012】
また、本発明の整列装置において、一時記憶部に入力されたデータが記憶される毎に、一時記憶部に記憶されるデータは、当該所定の順序付けにより昇順に整列されるように構成することができる。
【0013】
また、本発明の整列装置において、一時記憶部に記憶されるデータは、所定のデータ量制限に至った、もしくは、当該データの入力が終了した後、マージ部により取得される前に、当該所定の順序付けにより昇順に整列されるように構成することができる。
【0014】
また、本発明の整列装置において、マージ部は、一時記憶部に記憶されるデータと、不揮発部に記憶されるデータと、をマージソートするように構成することができる。
【0015】
また、本発明の整列装置において、一時記憶部は、ランダムアクセスメモリであり、不揮発記憶部は、ハードディスクであり、不揮発記憶部は、できるだけ連続したセクタに、当該所定の順序付けにより昇順に整列されたデータを記憶するように構成することができる。
【0016】
本発明のその他の観点に係る制御方法は、所定の順序付けが可能な複数のデータを昇順に整列し、入力受付部、当該所定の順序付けにより既に昇順に整列されたデータが不揮発に記憶される不揮発記憶部、一時記憶部、マージ部、消去部を有する整列装置を制御し、入力受付工程、一時記憶工程、マージ工程、消去工程を備え、以下のように構成する。
【0017】
すなわち、入力受付工程では、入力受付部が、整列されるべきデータの入力を受け付ける。
【0018】
一方、一時記憶工程では、一時記憶部に、入力を受け付けられたデータを、所定のデータ量制限に至るまで、もしくは、当該データの入力が終了するまで、一時的に記憶させる。
【0019】
さらに、マージ工程では、マージ部が、一時記憶工程にて所定のデータ量制限に至った場合、もしくは、当該データの入力が終了した場合、一時記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、不揮発記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、これら取得されたデータをマージして、不揮発記憶部に当該所定の順序付けにより昇順に整列された新たなデータとして不揮発に記憶させる。
【0020】
そして、消去工程では、消去部が、一時記憶工程にて所定のデータ量制限に至った場合、マージ工程におけるマージが行われた後に、一時記憶部に記憶されたデータを消去する。
【0021】
本発明のその他の観点に係るプログラムは、コンピュータを、上記整列装置の各部として機能させるように構成する。
【0022】
上記のプログラムは、CD−ROM(Compact Disk Read Only Memory)やFD(Flexible Disk)などの各種の記録媒体に記録することができるほか、インターネットなどのコンピュータ通信網を介して配布することができる。
【発明の効果】
【0023】
本発明によれば、順序付けが可能なデータを昇順に整列させるのに好適な整列装置、その制御方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができるようになる。
【発明を実施するための最良の形態】
【0024】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【実施例1】
【0025】
図1は、本発明の整列装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、図1を参照して説明する。
【0026】
情報処理装置101は、CPU(Central Processing Unit;中央処理ユニット)102によって制御される。情報処理装置101に電源を投入すると、CPU 102は、ROM 103に記憶されたIPL(Initial Program Loader;初期プログラムローダ)を実行する。
【0027】
IPLは、ハードディスク104、FDドライブ110に装着されたFD、CD−ROMドライブ111に装着されたCD−ROMなどの記録媒体に記憶されたOS(Operating System;オペレーティング・システム)プログラムを読み出して実行するプログラムである。
【0028】
OSを起動した後、CPU 102は、キーボード105やマウス106などにより入力されたユーザの指示にしたがって、あるいは、ハードディスクなどにあらかじめ記述された設定ファイルの内容にしたがって、ハードディスクなどに記憶されたアプリケーションプログラムを実行する。
【0029】
当該アプリケーションプログラムを実行することにより、情報処理装置101は、設計支援装置として機能することとなる。
【0030】
ハードディスク104、FDドライブ110に装着されたFD、CD−ROMドライブ111に装着されたCD−ROMなどの記憶媒体に、各種の情報が記録されることになる。
【0031】
CPU 102は、このプログラムの実行の際に、RAM 107を一時的な作業用記憶領域として用いる。このほか、一時的な作業用記憶領域として、CPU 102内に設けられたレジスタやキャッシュ(図示せず)が使われる。
【0032】
プログラムの実行に伴ない、各種の情報をユーザに報告したり、途中経過を見せるため、CPU 102は、液晶ディスプレイやCRT(Cathode Ray Tube)などの表示装置108に当該情報を表示することができる。マウス106による指示操作では、マウス106を移動することにより、画面に表示されたカーソルが移動し、マウス106をクリックすることにより、カーソルが指すメニュー項目を選択することができる。
【0033】
情報処理装置101は、NIC(Network Interface Card)やモデムなどのインターフェース109を介してインターネットなどのコンピュータ通信網と通信を行うことができる。インターフェース109を介して受信した順序木を処理の対象としたり、抽出したパターンをインターフェース109を介して送信したり、インターフェース109を介して受信したプログラムを実行したり、などができる。
【0034】
図2は、本発明の実施形態の一つに係る整列装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0035】
本実施形態に係る整列装置201は、所定の順序付けが可能な複数のデータを昇順に整列するものであり、入力受付部202、不揮発記憶部205、一時記憶部203、マージ部204、消去部206を備える。
【0036】
ここで、入力受付部202は、整列されるべきデータの入力を受け付ける。データの入力は、ハードディスク等に記録されたデータを読み出すこととしても良いし、コンピュータ通信網を介してデータを取得することとしても良い。また、他の処理によって得られたデータがRAMに記憶されている場合に、当該RAM内のデータを利用することとしても良い。
【0037】
したがって、CPU 102は、ハードディスク104、FDドライブ110に装着されたFD、CD−ROMドライブ111に装着されたCD−ROM、インターフェース109を介して通信可能に接続された他のコンピュータ、あるいは、RAM 107と共働して、入力受付部として機能する。
【0038】
図3、図4は、本実施形態の整列装置で処理するデータの例を示す説明図である。以下、本図を参照して説明する。本図に示すデータは、ある文書(ドキュメント)に出現する用語(ターム)の対応付けを記録するものである。各文書はドキュメントIDで識別され、各用語はタームIDで識別される。
【0039】
図3には、ドキュメントIDがd1〜d4の文書に、タームIDがt1〜t10のタームがそれぞれ出現する様子を表すデータが示されている。
【0040】
図3では、ドキュメントIDが記憶される配列301は、ドキュメントの数と同じ4個のスロットを配列の要素302として持っており、各スロットの配列の要素302には、ドキュメントIDと、タームIDの配列303へのポインタが含まれている。
【0041】
タームIDの配列303には、当該配列303を指すポインタを有するスロットの配列の要素302に記録されたドキュメントIDの文書に出現する用語のタームIDが記録されている。また、配列302、303には、それぞれ、当該配列に含まれる要素の要素の個数を記憶する領域305、306が用意されている。
【0042】
図3に示す例は、以下のような情報を表すデータである。
(1)ドキュメントIDがd1の文書では、タームIDがt1〜t4の用語が出現している。
(2)ドキュメントIDがd2の文書では、タームIDがt2、t5〜t7、t3の用語が出現している。
(3)ドキュメントIDがd3の文書では、タームIDがt8〜t10の用語が出現している。
(4)ドキュメントIDがd4の文書では、タームIDがt8、t9、t3、t4の用語が出現している。
【0043】
一方、図4は、ドキュメントIDとタームIDの関係を逆にしたデータを示している。図4では、タームIDが記憶される配列311は、タームの数と同じ10個のスロット312を持っており、各スロット312には、タームIDと、ドキュメントIDの配列313へのポインタが含まれている。
【0044】
ドキュメントIDの配列313には、当該配列313を指すポインタを有するスロット312に記録されたタームIDの用語が出現する文書のドキュメントIDが記録されている。また、配列312、313に、それぞれ、当該配列に含まれる要素数を示す領域315、316があるのは、上記のものと同様である。
【0045】
すなわち、図4に示す例は、以下のような情報を表すデータである。
(1)タームIDがt1の用語が出現する文書のドキュメントIDは、d1である。
(2)タームIDがt2の用語が出現する文書のドキュメントIDは、d1、d2である。
(3)タームIDがt3の用語が出現する文書のドキュメントIDは、d1、d2、d4である。
(4)タームIDがt4の用語が出現する文書のドキュメントIDは、d1、d4である。
(5)タームIDがt5の用語が出現する文書のドキュメントIDは、d2である。
(6)タームIDがt6の用語が出現する文書のドキュメントIDは、d2である。
(7)タームIDがt7の用語が出現する文書のドキュメントIDは、d2である。
(8)タームIDがt8の用語が出現する文書のドキュメントIDは、d3、d4である。
(9)タームIDがt9の用語が出現する文書のドキュメントIDは、d3、d4である。
(10)タームIDがt10の用語が出現する文書のドキュメントIDは、d3である。
【0046】
さて、図4に示すデータ構造は、図3に示すデータ構造の「転置ファイル」と呼ばれる。
【0047】
図3に示すデータ構造は、ドキュメントIDを鍵に当該ドキュメントIDに対応付けられるタームIDの群がソート(整列)されているのに対して、図4に示すデータ構造は、タームIDを鍵に当該タームIDに対応付けられるドキュメントIDの群がソートされているからである。
【0048】
図5、図6は、図3、図4に示すものと等価なデータ構造を示す説明図である。すなわち、図3、図4に示されるデータ構造と図5、図6に示されるデータ構造とは、相互に変換が可能である。
【0049】
図5では、配列内に16個の要素が格納されており、各要素は、ドキュメントIDとタームIDがコロン「:」で結ばれた対からなっている。この対は、当該ドキュメントIDの文書に当該タームIDの用語が出現することを意味している。
【0050】
図5は、配列内で各対がドキュメントIDを鍵にソートされた様子を示すものであり、図3に示される構造と等価である。
【0051】
図6は、配列内で各対がタームIDを鍵にソートされた様子を示すものであり、図4に示される構造と等価である。
【0052】
このように、転置ファイルを作成する、という作業は、対の一方の鍵でソートされている(実は、必ずしもソートされている必要はない。)データを、他方の鍵でソートし直すことに相当する。
【0053】
ここでは、文書をドキュメントIDの順に走査して、用語が出現するごとに当該用語のタームIDを取得することで、図3や図5に相当するようなデータを入力受付部202が受け付ける場合を考える。特に、入力受付部202は、図5に示される配列401の要素302の対が個々に順に、いわゆるストリームデータとして入力される場合を考える。
【0054】
一般に、ソートは、各レコードに含まれる要素を用いてどのような大小関係をつけるか、によって結果が定まる。上記のような文書に出現する用語の出現の様子を表す転置ファイルを作成する場合には、容易に得られる一方の要素の大小関係ではなく、他方の要素の大小関係でデータをソートすることに相当するのである。
【0055】
以下では、理解を容易にするため、上記のような転置ファイルを作る作業に整列装置201を適用する場合を例にあげて説明するが、一般的な各種のソートに適用できることは明らかであり、そのような実施態様も本発明の範囲に含まれる。
【0056】
また、本実施形態では、理解を容易にするため個々のデータを記憶するためのデータ構造として配列を採用するが、図3に示すような配列とリスト構造を併用したものを採用しても良いし、その他、配列と相互に変換可能な種々のデータ構造を採用しても良く、そのような場合も本発明の範囲に含まれる。
【0057】
さて、不揮発記憶部205は、当該所定の順序付けにより既に昇順に整列されたデータを、不揮発に記憶する。
【0058】
すなわち、不揮発記憶部205が記憶するのは、
(a)作業途中の転置ファイル。対のデータが途中までソートされたもの。
(b)作業結果の転置ファイル。図6に相当するもの。
のいずれかである。したがって、初めて作業を開始する場合には、不揮発記憶部205に記憶されるデータは、空であり、入力受付部202がデータを受け付けると、適宜データが追加されて記憶されるが、記憶されている状態は、所定の順序で(本実施形態では、タームIDの順序で)ソートされたものである、ということになる。
【0059】
したがって、不揮発記憶部205としては、ハードディスク等にデータを記録することとしても良いし、コンピュータ通信網を介して他の機器にデータを記録することとしても良い。すなわち、ハードディスク104、FDドライブ110に装着されたFD、インターフェース109を介して通信可能に接続された他のコンピュータ等は、不揮発記憶部205として機能する。
【0060】
一方、一時記憶部203は、入力を受け付けられたデータを、所定のデータ量制限に至るまで、もしくは、当該データの入力が終了するまで、一時的に記憶する。
【0061】
すなわち、一時記憶部203が記憶するのは、入力されたデータの一部、特に、最近入力された所定量(個数、バイト数等)を上限とするデータである。一時記憶部203は、入力されたデータを一時的にバッファリングするために機能する。
【0062】
したがって、初めて作業を開始する場合には、一時記憶部203に記憶されるデータは、空であり、入力受付部202がデータを受け付けると、適宜データが追加されて記憶されるが、後述するように、適当なタイミングで一時記憶部203は消去される。典型的には、RAM 107が、一時記憶部203として機能する。
【0063】
なお、本実施形態は、不揮発記憶部205と一時記憶部203とをうまく利用して、ソートを高速に行うためのものであり、そのためには、一時記憶部203に対するアクセス速度が、不揮発記憶部205に対するアクセス速度よりも高速であれば十分である。アクセス速度が高速な記憶媒体は、容量制限が厳しくなることが一般的である。
【0064】
本実施形態も、アクセス速度が低速であるが記憶容量の大きいハードディスク104は不揮発記憶部205として、アクセス速度が高速であるが記憶容量の小さいRAM 107は一時記憶部203として、それぞれ用いるのが好適である。
【0065】
図7は、本実施形態の整列装置201で実行される整列処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0066】
処理が開始されると、まず、CPU 102は、一時記憶部203をクリアする(ステップS501)。上記のように、一時記憶部203は配列として実装されており、記録できる要素の個数には上限がある。ここでは、仮に、その個数を5個とする。すなわち、記憶された対の数が5個に至ると、データ量制限に至ったこととなる。
【0067】
なお、現在記憶されている要素の個数は、別途RAM 107内などに記憶するようにしておく。すると、当該個数を0にクリアすれば、ステップS501の処理が実行されることになる。
【0068】
次に、CPU 102は、不揮発記憶部205をクリアする(ステップS502)。なお、上述したように、既存のソート済みデータに新たに要素を追加する場合は、ステップS502の処理は不要である。
【0069】
図8から図33は、不揮発記憶部205と一時記憶部203に用意されている配列の様子を示す説明図である。これらの図においては、ドキュメントIDとタームIDをコロン「:」で区切って各データを表記するものとする。
【0070】
図8は、初めて実行されるステップS503の直前の様子を示すものであり、不揮発記憶部205、一時記憶部203とも、配列内にはデータが記憶されておらず、空となっている。
【0071】
ついで、入力受付部202は、受け付けるデータがあるか否かを調べる(ステップS503)。データがある場合(ステップS503;Yes)、当該データを取得して(ステップS504)、一時記憶部203に追加して記憶する(ステップS505)。
【0072】
上記のように、一時記憶部203は配列として構成されているため、現在記憶されている要素数を保持しておけば、追加は容易に行うことができる。
【0073】
次に、現在一時記憶部203に記憶されているデータが所定のデータ量制限に至ったか否か、すなわち、本実施形態の場合には、一時記憶部203に記憶されたデータの個数が配列に記憶しうる個数に至ったか否かを調べ(ステップS506)、至っていなければ(ステップS506;No)、ステップS503に戻る。
【0074】
上記のように、配列に記憶できる要素の上限は5個であるから、多くの場合(入力されるデータがそろそろ終了する頃以外の状況)は、5個になるまで順次データが追加されていくことになる(図9、図10、図11、図12、図13)。
【0075】
一方、配列に記憶しうる個数に至った場合(ステップS506;Yes)、ステップS507に進む。図13は、初めて実行されたステップS507に進む直前の不揮発記憶部205、一時記憶部203の様子が示されていることとなる。前者は空となっているが、後者には5個のデータが入力された順に記憶されている。
【0076】
さてここで、マージ部204は、一時記憶部203に記憶されたデータを、所定の順序でソートする(ステップS507)。本実施形態の場合、所定の順序とは、データの対のうち、タームIDの順序、の意味である。したがって、図14には、ステップS507の後の不揮発記憶部205、一時記憶部203の様子が示されており、前者は空となっているが、後者には5個のデータがタームIDの順に記憶されることとなる。
【0077】
上記のように、一時記憶部203は、RAM 107などの比較的アクセスが高速な媒体を用いて実現されるため、ステップS507におけるソートも高速に行うことができる。
【0078】
ついで、マージ部204は、不揮発記憶部205と、一時記憶部203に記憶されたデータを先頭から順に個別に読み出して、マージした、新たな配列を不揮発記憶部205に記憶させる(ステップS508)。
【0079】
不揮発記憶部205と一時記憶部203は、いずれも配列として用意されているが、配列の先頭から要素を順に読み出す場合、これらはデータストリームとして考えることができる。
【0080】
2つのデータストリームをマージする、とは、マージソートで用いられる手法であり、マージは、2つのソート済みのデータ列から、これらを併せたデータからなる1つのソート済みのデータ列を生成するための広く知られた手法であり、具体的には、以下のような処理を行う。
(1)一方のデータストリームの先頭と、他方のデータストリームの先頭を比較し、小さい方を出力する。
(2)両方の先頭が等しければ、どちらかを選択して出力する。
(3)出力された側のデータストリームを1つ進め、先頭を更新して、上記の処理を繰り返す。
(4)いずれかのデータストリームが終了したら、残りのデータストリームをそのまま出力する。
【0081】
マージ(ステップS508)が終了したら、既存の配列を削除して、新たな配列を「不揮発記憶部205に記憶されるデータ」とする(ステップS509)。
【0082】
典型的には、不揮発記憶部205に記憶されるデータは、ハードディスク104内でファイル名を用いて管理される。したがって、ソート済みのデータを記憶するファイル名をXとした場合、マージ(ステップS508)されたデータを記憶する新たなファイル名としては一時的な名前Yを用いてハードディスク104に出力する。そして、ステップS509において、ファイル名Xのファイルを削除した後、ファイル名Yのファイルをファイル名Xにリネーム(rename)すれれば良い。
【0083】
図15には、初めて実行されたステップS509の後の不揮発記憶部205、一時記憶部203の様子が示されており、後者は空となっているが、前者には5個のデータがタームIDの順に記憶されることとなる。
【0084】
さて、マージが終了したら、消去部206は、一時記憶部203をクリアして(ステップS510)、ステップS503に戻る。
【0085】
一方、受け付けるデータがなくなった場合(ステップS503;No)の場合も、ステップS511に進む。ステップS511〜ステップS513で実行する処理は、ステップS507〜ステップS509と同じである。
【0086】
すなわち、一時記憶部203に記憶されている(配列に記憶しうる個数未満の個数の)データを当該所定の順序でソートすることになる。
【0087】
すると、最終的には、不揮発記憶部205に、入力を受け付けたデータ(と、もし既存のソート済みデータが不揮発記憶部205にあれば、それも含むデータ)をソートしたデータが、配列として記憶されることになる。
【0088】
図8〜図33には、このような処理によってどのように不揮発記憶部205と一時記憶部203にデータが記憶されていく様子を順に示している。
【0089】
なお、上記の説明では、不揮発記憶部205と一時記憶部203に記憶されたデータをマージする直前に、一時記憶部203に記憶されたデータをソートすることとしており、データを一時記憶部203に追加する際には、単に有効な配列の末尾に追加するだけとしているが、データを追加する度に、大小関係を考慮して正しい順に挿入追加することとしても良い。これは、挿入ソートを行っていることに相当する。
【0090】
上記のように、本実施形態では、一時記憶部203としてRAM 107を採用し、不揮発記憶部205としてハードディスク104を採用しているが、マージ処理では、データが先頭から順に出力されるので、書き込みの際にもシークがあまり発生せず、できるだけ連続したセクタにデータが順に書き込まれることになる。したがって、ソート済データに対する以降のマージ処理でも高速なアクセスが期待できるとともに、ソート全体の所要時間の高速化を図ることもできる。
【産業上の利用可能性】
【0091】
以上説明したように、順序付けが可能なデータを昇順に整列させるのに好適な整列装置、その制御方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができるようになる。
【図面の簡単な説明】
【0092】
【図1】情報処理装置の概要構成を示す模式図である。
【図2】本発明の実施形態に係る整列装置の概要構成を示す模式図である。
【図3】本実施形態の整列装置で処理するデータの例を示す説明図である。
【図4】本実施形態の整列装置で処理するデータの例を示す説明図である。
【図5】本実施形態の整列装置で処理するデータの例を示す説明図である。
【図6】本実施形態の整列装置で処理するデータの例を示す説明図である。
【図7】本発明の実施形態に係る整列装置にて実行される整列処理の制御の流れを示すフローチャートである。
【図8】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図9】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図10】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図11】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図12】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図13】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図14】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図15】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図16】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図17】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図18】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図19】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図20】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図21】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図22】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図23】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図24】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図25】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図26】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図27】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図28】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図29】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図30】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図31】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図32】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【図33】一時記憶部と不揮発記憶部に記憶されるデータの様子を示す説明図である。
【符号の説明】
【0093】
101 情報処理装置
102 CPU
103 ROM
104 HD
105 キーボード
106 マウス
107 RAM
108 表示装置
109 インターフェース
110 FDドライブ
111 CD−ROMドライブ
201 整列装置
202 入力受付部
203 一時記憶部
204 マージ部
205 不揮発記憶部
206 消去部
301 配列
302 配列の要素
303 配列
305 配列の要素の個数
306 配列の要素の個数
311 配列
312 配列の要素
313 配列
315 配列の要素の個数
316 配列の要素の個数

【特許請求の範囲】
【請求項1】
所定の順序付けが可能な複数のデータを昇順に整列する整列装置であって、
整列されるべきデータの入力を受け付ける入力受付部、
当該所定の順序付けにより既に昇順に整列されたデータを、不揮発に記憶する不揮発記憶部、
前記入力を受け付けられたデータを、所定のデータ量制限に至るまで、もしくは、当該データの入力が終了するまで、一時的に記憶する一時記憶部、
前記一時記憶部が所定のデータ量制限に至った場合、もしくは、当該データの入力が終了した場合、前記一時記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、前記不揮発記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、これら取得されたデータをマージして、前記不揮発記憶部に当該所定の順序付けにより昇順に整列された新たなデータとして不揮発に記憶させるマージ部、
前記一時記憶部が所定のデータ量制限に至った場合、前記マージ部によるマージが行われた後に、前記一時記憶部に記憶されたデータを消去する消去部
を備えることを特徴とする物。
【請求項2】
請求項1に記載の整列装置であって、
前記一時記憶部に前記入力されたデータが記憶される毎に、前記一時記憶部に記憶されるデータは、当該所定の順序付けにより昇順に整列される
ことを特徴とする物。
【請求項3】
請求項1に記載の整列装置であって、
前記一時記憶部に記憶されるデータは、所定のデータ量制限に至った、もしくは、当該データの入力が終了した後、前記マージ部により取得される前に、当該所定の順序付けにより昇順に整列される
ことを特徴とする物。
【請求項4】
請求項1から3のいずれか1項に記載の整列装置であって、
前記マージ部は、前記一時記憶部に記憶されるデータと、前記不揮発部に記憶されるデータと、をマージソートする
ことを特徴とする物。
【請求項5】
請求項1から4のいずれか1項に記載の整列装置であって、
前記一時記憶部は、ランダムアクセスメモリであり、
前記不揮発記憶部は、ハードディスクであり、
前記不揮発記憶部は、できるだけ連続したセクタに、当該所定の順序付けにより昇順に整列されたデータを記憶する
ことを特徴とする物。
【請求項6】
所定の順序付けが可能な複数のデータを昇順に整列し、入力受付部、不揮発記憶部、一時記憶部、マージ部、消去部を有する整列装置を制御する制御方法であって、
前記不揮発記憶部には、当該所定の順序付けにより既に昇順に整列されたデータが、不揮発に記憶され、
前記入力受付部が、整列されるべきデータの入力を受け付ける入力受付工程、
前記一時記憶部に、前記入力を受け付けられたデータを、所定のデータ量制限に至るまで、もしくは、当該データの入力が終了するまで、一時的に記憶させる一時記憶工程、
前記マージ部が、前記一時記憶工程にて所定のデータ量制限に至った場合、もしくは、当該データの入力が終了した場合、前記一時記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、前記不揮発記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、これら取得されたデータをマージして、前記不揮発記憶部に当該所定の順序付けにより昇順に整列された新たなデータとして不揮発に記憶させるマージ工程、
前記消去部が、前記一時記憶工程にて所定のデータ量制限に至った場合、前記マージ工程におけるマージが行われた後に、前記一時記憶部に記憶されたデータを消去する消去工程
を備えることを特徴とする方法。
【請求項7】
所定の順序付けが可能な複数のデータを昇順に整列させるため、コンピュータを、
整列されるべきデータの入力を受け付ける入力受付部、
当該所定の順序付けにより既に昇順に整列されたデータを、不揮発に記憶する不揮発記憶部、
前記入力を受け付けられたデータを、所定のデータ量制限に至るまで、もしくは、当該データの入力が終了するまで、一時的に記憶する一時記憶部、
前記一時記憶部が所定のデータ量制限に至った場合、もしくは、当該データの入力が終了した場合、前記一時記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、前記不揮発記憶部に記憶されるデータを当該所定の順序付けにより昇順に取得し、これら取得されたデータをマージして、前記不揮発記憶部に当該所定の順序付けにより昇順に整列された新たなデータとして不揮発に記憶させるマージ部、
前記一時記憶部が所定のデータ量制限に至った場合、前記マージ部によるマージが行われた後に、前記一時記憶部に記憶されたデータを消去する消去部
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2006−227881(P2006−227881A)
【公開日】平成18年8月31日(2006.8.31)
【国際特許分類】
【出願番号】特願2005−40533(P2005−40533)
【出願日】平成17年2月17日(2005.2.17)
【出願人】(390024350)株式会社ジャストシステム (123)