JPH086761A - ソート処理装置及びソート処理方法 - Google Patents
ソート処理装置及びソート処理方法Info
- Publication number
- JPH086761A JPH086761A JP13898394A JP13898394A JPH086761A JP H086761 A JPH086761 A JP H086761A JP 13898394 A JP13898394 A JP 13898394A JP 13898394 A JP13898394 A JP 13898394A JP H086761 A JPH086761 A JP H086761A
- Authority
- JP
- Japan
- Prior art keywords
- records
- sorting
- key
- sort
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ことができるソート処理装置及びソート処理方法を提供
する。 【構成】 入力ファイル10は複数のレコード10a、
10b、10c、10dを有している。分配手段1は、
入力ファイル10内のレコードを1つずつ解読し、ソー
トの基準とするキーが含まれているソート対象のレコー
ドは、ソート対象レコード群20の列に加え、ソートの
基準とするキーが含まれていないレコードはソート非対
象レコード群30の列に加えるように、各レコードを分
配する。ソート手段2は、ソート対象レコード群20に
並んでいるレコード10a、10cを、キーを判断基準
としてソートし、そのレコードをソート順に出力する。
マージ手段3は、ソート手段2から出力されたレコード
にソート非対象レコード群30に並んでいるレコード1
0b、10dを加え、出力ファイル40にレコードを出
力する。このようにして、ソートの基準となるキーを含
んだレコードのみをソートの対象とすることができる。
Description
うためのソート処理装置及びソート処理方法に関し、特
にそれぞれの長さの違う可変長レコードの並べ替えを行
うためのソート処理装置及びソート処理方法に関する。
ュータでは、一定の形式で書かれた大量のレコードを扱
うので、何らかの順にならんでいると処理しやすいこと
が多い。普通、レコードはキーとなる項目を持ってお
り、そのキーに従って昇順や降順に並べ替える。このよ
うに、レコードをある一定の基準に従って並べ替えを行
うことをソートと呼ぶ。ここでキーとは、レコードの見
出しとして使用されるキャラクタの集まりで、通常ひと
つのフィールドを構成している。そして、レコードには
複数のキーが含まれており、ソートを行う際にはどのキ
ーを基準にするかを選択し、そのキーに従って昇順か、
あるいは降順に並べ替える。なお、昇順とは、キーの値
の小さい順に並べ替えることであり、降順とは、キーの
値の大きい順に並べ替えることである。
コード)には、各レコードに必ず並べ替えの基準として
指定した同じキーが含まれている。ところが、可変長レ
コード(レコードによってデータの長さが異なるレコー
ド)には、全てのレコードに並べ替えの基準として指定
したキーが含まれているとは限らない。つまり、長いレ
コードには、短いレコードに無いキーが含まれている場
合があり得る。
る。これは複数のパソコンについてのレコードである。
データの種類は、「商品名」、「価格」、「出荷時
期」、「5月分出荷数」、「4月分出荷数」、「3月分
出荷数」、「2月分出荷数」、「1月分出荷数」の8種
類である。このデータの各月の出荷数は、最新のデータ
から新しい順に記録されている。
ソートする場合、製品によって出荷時期が違うため、出
荷数のデータが存在する場合と存在しない場合とがあ
る。例えば、1月分の出荷数をキーとしてソートを行う
場合、キーとなるデータを含んでいるのはパソコンAと
パソコンBだけであり、その他のパソコンのレコードは
キーを含んでいない。
場合、基準とするべきキーが含まれないレコードには仮
のキーデータを与え、ソートを実行する。そして、実行
結果を出力する際に、仮のキーデータを削除する。な
お、仮のキーデータは、最小値を与えることが一般的で
ある。例えば、0から9の数字を小さい順に並べる場
合、仮のキーデータは0となる。その結果、キーを含ま
ない短いレコードは、レコード列の先頭に出力される。
いレコードに仮のキーデータを付加するため、ソート処
理を行う際に、付加された仮のキーデータのための記憶
領域が必要になる。つまり、ソート処理の行っている
間、各レコードはメモリ等の記憶装置に一時的に格納さ
れるが、レコードが長くなれば、より大きな記憶領域が
必要となる。さらに、その記憶領域の作成処理も必要に
なる。
る仮のキーデータは最小値であることが明確であるにも
係わらず、そのレコードもソート処理の際の比較対象に
なるため、ソートの際の比較回数が多くなりソート処理
全体の処理時間が長くなってしまう。
ト処理では不必要な処理が多く、ソート処理に時間がか
かるとともに、ソート処理の際に大きな記憶領域が必要
になるという問題点があった。
のであり、可変長レコードのソート処理を効率的に行う
ことができるソート処理装置を提供することを目的とす
る。また、本発明の別の目的は、可変長レコードのソー
ト処理を効率的に行うことができるソート処理方法を提
供することである。
る本発明のソート処理装置の原理図である。本発明で
は、入力された可変長のレコード10a、10b、10
c、10dを、ソートの判断基準とすべきキーが含まれ
ているレコードの集まりであるソート対象レコード群2
0と、前記キーが含まれてないレコードの集まりである
ソート非対象レコード群30とに分配する分配手段1
と、キーを判断基準にしてソート対象レコード群20の
レコードをソートし、そのレコードをソート順に出力す
るソート手段2と、が設けられる。
ドに、ソート非対象レコード群30のレコードを加えて
出力するマージ手段3がさらに設けられる。
0a、10b、10c、10dを、ソートの判断基準と
すべきキーが含まれているレコードの集まりであるソー
ト対象レコード群20と、前記キーが含まれてないレコ
ードの集まりであるソート非対象レコード群30とに分
配する。ソート手段2は、キーを基準にしてソート対象
レコード群20内のレコードをソートし、レコードをソ
ート順に出力する。
出力されたレコードに、ソート非対象レコード群30の
レコードを加えて出力する。これにより、ソートの基準
となるキーを含んだレコードのみをソートの対象とする
ことができる。
明する。図1は本発明のソート処理装置の原理図であ
る。入力ファイル10は複数のレコード10a、10
b、10c、10dを有している。分配手段1は、入力
ファイル10内のレコードを1つずつ解読し、ソートの
基準とするキーが含まれているソート対象のレコード
は、ソート対象レコード群20の列に加え、ソートの基
準とするキーが含まれていないレコードはソート非対象
レコード群30の列に加えるように、各レコードを分配
する。
0に並んでいるレコード10a、10cを、キーを判断
基準としてソートし、そのレコードをソート順に出力す
る。マージ手段3は、ソート手段2から出力されたレコ
ードにソート非対象レコード群30に並んでいるレコー
ド10b、10dを加え、出力ファイル40にレコード
を出力する。この際、ソート手段2で実行されたソート
が昇順のソートの場合には、ソート非対象レコード群3
0に並んでいるレコードを先に出力し、その後ソート手
段2から出力されたレコードを出力する。逆に、実行さ
れたソートが降順のソートの場合には、ソート手段2か
ら出力されたレコードを先に出力し、その後ソート非対
象レコード群30に並んでいるレコードを出力する。
を含んだレコードのみをソートの対象とすることができ
る。なお、キーを含まないレコードのみを出力として必
要な場合は、マージ手段3を設けずにソート手段2がソ
ートしたレコードを、直接出力することもできる。
を示すフローチャートである。なお、このフローチャー
トにおいてステップ1からステップ5は分配手段1の実
行する機能であり、ステップ6はソート手段2の実行す
る機能であり、ステップ7からステップ11はマージ手
段3の実行する機能である。 〔S1〕入力ファイルのレコードを1つ読み込む。 〔S2〕読み込んだレコードに、ソートの基準となるべ
きキーが含まれているかどうかを判断し、キーが含まれ
ていればステップ3に進み、キーが含まれていなければ
ステップ4に進む。この判断は、レコード長とキーの開
始位置を比較することによって判断する。キーの開始位
置よりも短いレコード長のレコードは、キーを含んでい
ないと判断し、キーの開始位置よりも長いレコード長の
レコードは、キーを含んでいると判断する。 〔S3〕レコードをソート対象レコード群の列に並ばせ
る。 〔S4〕レコードをソート非対象レコード群の列に並ば
せる。 〔S5〕入力ファイル内の全てのレコードを読み込んだ
かどうかを判断し、全てのレコードの読み込みが完了し
ていればステップ6に進み、完了していなければステッ
プ1に進む。 〔S6〕ソート対象レコード群に並んでいるレコード
を、キーを判断基準にし、指定された順(昇順、あるい
は降順)でソートする。 〔S7〕ソート対象レコード群のソートが昇順であるか
どうかを判断し、昇順であればステップ8に進み、昇順
でなければ降順であると判断しステップ10に進む。 〔S8〕出力ファイルに対し、ソート非対象レコード群
のレコードを出力する。 〔S9〕出力ファイルに対し、ソート順に従ってソート
対象レコード群のレコードを出力する。 〔S10〕出力ファイルに対し、ソート順に従ってソー
ト対象レコード群のレコードを出力する。 〔S11〕出力ファイルに対し、ソート非対象レコード
群のレコードを出力する。
において、入力ファイル内のレコードがどのように処理
されるかを具体的な例を用いて説明する。図3は入力フ
ァイルのレコードの例を示す図である。この入力ファイ
ル10には、10個の可変長のレコード10a〜10j
がある。ここで、レコードの先頭から12、13番目の
データをキーとし昇順でソートする場合を想定すると、
レコード10aとレコード10cとがキーを含んでいる
ことになる。
は、分配手段1によってソート対象レコード群と、ソー
ト非対象レコード群に分配される。このとき、レコード
がキーを含むかどうかは、レコードの長さで判断する。
つまり、レコードのデータの数が11以内の場合、その
レコードはキーを含んでいないと判断し、レコードのデ
ータの数が12以上の場合、そのレコードはキーを含ん
でいると判断する。
レコードを示す図である。このソート対象レコード群2
0には、レコード10aとレコード10cが並んでい
る。レコード10aのキー11aの値は「23」、レコ
ード10cのキー11cの値は「34」である。
るレコードを示す図である。このソート非対象レコード
群には、レコード10b、レコード10d〜レコード1
0jが並んでいる。
すソート対象レコード群のレコードが昇順にソートされ
る。この例では、レコード10aのキーは「23」、レ
コード10cのキーは「34」であるため、レコード1
0aの方が先の順番にソートされる。
れたレコード10a、10cに、ソート非対象レコード
群に並んでいるレコード10b、10d〜10jが加え
られ、出力ファイルに出力される。この際、ソートが昇
順で行われているので、ソート非対象のレコードが先に
出力される。
である。この出力ファイル内のレコードは、先頭からレ
コード10b、レコード10d、レコード10e、レコ
ード10f、レコード10g、レコード10h、レコー
ド10i、レコード10j、レコード10a、レコード
10cの順になっている。なお、この結果はキーを含ま
ないレコードに仮のキー「0」を付加して、全てのレコ
ードを対象にソートした場合と同じ結果である。
を対象としてソートすることができる。そのため、キー
を含まないレコードに対して、仮のキーを付加する等の
処理を行う必要がなくなり、実行するべき処理を減らす
ことができるとともに、仮のキーを付加するために余分
に必要だった記憶領域が不要となる。
含むレコードどうしでの比較を行えば良いため、ソート
の際の比較の回数が少なくなり、ソート処理にかかる時
間を短縮できる。例えば、10件のレコードがあり、そ
のうちの2件のレコードのみがキーを含んでいる場合を
考える。従来の方法では、キーを含まないレコードに仮
のキーを付加し、全てのレコードを比較対象とするた
め、10件のレコードからキーの値が最小のレコードを
1つ抽出するためには9回の比較が必要となる。ところ
が、キーを含むレコードのみで比較を行えば1回の比較
ですむ。この例では比較の回数が9分の1になり、大幅
な処理時間の短縮が図れる。
のレコードを、ソートの基準となるキーを含むソート対
象レコード群と、キーを含まないソート非対象レコード
群とに分配し、ソートの判断基準となるキーを含んだレ
コードのみをソートの対象とすることができるようにな
るため、可変長のレコードのソートを効率良く実行する
ことができ、ソート処理にかかる時間が短縮できるとと
もに、ソート処理の際に必要な記憶領域も小さくするこ
とができる。
ーチャートである。
る。
示す図である。
を示す図である。
Claims (6)
- 【請求項1】 可変長レコードのソートを行うソート処
理装置において、 入力された可変長のレコード(10a、10b、10
c、10d)を、ソートの判断基準とすべきキーが含ま
れているレコードの集まりであるソート対象レコード群
(20)と、前記キーが含まれてないレコードの集まり
であるソート非対象レコード群(30)とに分配する分
配手段(1)と、 前記キーを判断基準にして前記ソート対象レコード群
(20)内のレコードをソートし、ソート順に出力する
ソート手段(2)と、 を有することを特徴とするソート処理装置。 - 【請求項2】 ソート手段(2)が出力した前記ソート
対象レコード群(20)のレコードに、前記ソート非対
象レコード群(30)のレコードを加えて出力するマー
ジ手段(3)をさらに有することを特徴とする請求項1
記載のソート処理装置。 - 【請求項3】 前記マージ手段(3)は、昇順のソート
の場合には、前記ソート非対象レコード群(30)のレ
コードを出力した後に前記ソート対象レコード群(2
0)のレコードを出力し、降順のソートの場合には、前
記ソート対象レコード群(20)のレコードを出力した
後に前記ソート非対象レコード群(30)のレコードを
出力することを特徴とする請求項2記載のソート処理装
置。 - 【請求項4】 前記分配手段(1)は、前記レコード
(10a、10b、10c、10d)の長さを確認する
ことにより、前記キーを含むかどうかを判断することを
特徴とする請求項1記載のソート処理装置。 - 【請求項5】 可変長レコードのソートを行うソート処
理方法において、 入力された可変長のレコード(10a、10b、10
c、10d)を、ソートの判断基準とすべきキーが含ま
れているレコードの集まりと、前記キーが含まれてない
レコードの集まりとに分配し、 前記キーが含まれているレコードを対象に、前記キーを
判断基準にしてソートし、ソート順に出力する、 ことを特徴とするソート処理方法。 - 【請求項6】 前記キーが含まれているレコードをソー
トし、ソート順に出力する際には、前記キーを含まない
レコードを加えて出力することを特徴とする請求項5記
載のソート処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13898394A JP3549251B2 (ja) | 1994-06-21 | 1994-06-21 | ソート処理装置及びソート処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13898394A JP3549251B2 (ja) | 1994-06-21 | 1994-06-21 | ソート処理装置及びソート処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH086761A true JPH086761A (ja) | 1996-01-12 |
JP3549251B2 JP3549251B2 (ja) | 2004-08-04 |
Family
ID=15234741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13898394A Expired - Fee Related JP3549251B2 (ja) | 1994-06-21 | 1994-06-21 | ソート処理装置及びソート処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3549251B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010102628A (ja) * | 2008-10-27 | 2010-05-06 | Nec Corp | データ並べ替え方法およびデータ処理装置 |
JP2020123035A (ja) * | 2019-01-29 | 2020-08-13 | 富士通株式会社 | ソート方法、ソートプログラム及びソート装置 |
-
1994
- 1994-06-21 JP JP13898394A patent/JP3549251B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010102628A (ja) * | 2008-10-27 | 2010-05-06 | Nec Corp | データ並べ替え方法およびデータ処理装置 |
JP2020123035A (ja) * | 2019-01-29 | 2020-08-13 | 富士通株式会社 | ソート方法、ソートプログラム及びソート装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3549251B2 (ja) | 2004-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6424970B1 (en) | Sorting system and method executed by plural computers for sorting and distributing data to selected output nodes | |
US20070239663A1 (en) | Parallel processing of count distinct values | |
US6601067B1 (en) | Apparatus for sorting and merging data records | |
JPH09245043A (ja) | 情報検索装置 | |
EP0350654B1 (en) | Data processing apparatus | |
JP4563558B2 (ja) | データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体 | |
JP3549251B2 (ja) | ソート処理装置及びソート処理方法 | |
US20060218154A1 (en) | Data processing method and data processing program | |
JPS63249267A (ja) | 電子ファイリング装置の管理方法 | |
US6643632B1 (en) | Data processing system and computer-readable recording medium recorded with a program for causing a computer to process data | |
JP3070093B2 (ja) | レコード処理装置 | |
JPH0581337A (ja) | データ処理装置 | |
JP2010061604A (ja) | 整合性検証システム、検証方法およびプログラム | |
JP2959497B2 (ja) | データ処理装置及びデータ処理方法 | |
JP2760755B2 (ja) | コンピュータ処理用操作ボタン履歴を記憶し再表示する方法 | |
JP2943694B2 (ja) | データ登録方式およびデータ検索方式 | |
JP3337469B2 (ja) | 情報処理装置 | |
JPS62287350A (ja) | インデツクス一括更新方式 | |
JP3354249B2 (ja) | 日程管理情報入力装置 | |
KR0159814B1 (ko) | 전자식 금전등록기에서의 상품관리 방법 | |
JPS6052058B2 (ja) | 書類分類装置 | |
JP3456481B2 (ja) | 情報処理装置 | |
JPS63301325A (ja) | 図書管理システムにおけるデ−タベ−ス方式 | |
JP2768397B2 (ja) | データ処理方式 | |
JP2912026B2 (ja) | ファイル情報の照合方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040420 |
|
A61 | First payment of annual fees (during grant procedure) |
Effective date: 20040420 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 4 Free format text: PAYMENT UNTIL: 20080430 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 5 Free format text: PAYMENT UNTIL: 20090430 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100430 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110430 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |