JP3549251B2 - ソート処理装置及びソート処理方法 - Google Patents
ソート処理装置及びソート処理方法 Download PDFInfo
- Publication number
- JP3549251B2 JP3549251B2 JP13898394A JP13898394A JP3549251B2 JP 3549251 B2 JP3549251 B2 JP 3549251B2 JP 13898394 A JP13898394 A JP 13898394A JP 13898394 A JP13898394 A JP 13898394A JP 3549251 B2 JP3549251 B2 JP 3549251B2
- Authority
- JP
- Japan
- Prior art keywords
- records
- record
- key
- sort
- sorting
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明はレコードの並べ替えを行うためのソート処理装置及びソート処理方法に関し、特にそれぞれの長さの違う可変長レコードの並べ替えを行うためのソート処理装置及びソート処理方法に関する。
【0002】
【従来の技術】
各種レコードのデータ処理を行うコンピュータでは、一定の形式で書かれた大量のレコードを扱うので、何らかの順にならんでいると処理しやすいことが多い。普通、レコードはキーとなる項目を持っており、そのキーに従って昇順や降順に並べ替える。このように、レコードをある一定の基準に従って並べ替えを行うことをソートと呼ぶ。ここでキーとは、レコードの見出しとして使用されるキャラクタの集まりで、通常ひとつのフィールドを構成している。そして、レコードには複数のキーが含まれており、ソートを行う際にはどのキーを基準にするかを選択し、そのキーに従って昇順か、あるいは降順に並べ替える。なお、昇順とは、キーの値の小さい順に並べ替えることであり、降順とは、キーの値の大きい順に並べ替えることである。
【0003】
固定長レコード(データの長さが一定のレコード)には、各レコードに必ず並べ替えの基準として指定した同じキーが含まれている。ところが、可変長レコード(レコードによってデータの長さが異なるレコード)には、全てのレコードに並べ替えの基準として指定したキーが含まれているとは限らない。つまり、長いレコードには、短いレコードに無いキーが含まれている場合があり得る。
【0004】
図7は可変長レコードの例を示す図である。これは複数のパソコンについてのレコードである。データの種類は、「商品名」、「価格」、「出荷時期」、「5月分出荷数」、「4月分出荷数」、「3月分出荷数」、「2月分出荷数」、「1月分出荷数」の8種類である。このデータの各月の出荷数は、最新のデータから新しい順に記録されている。
【0005】
このデータを、月別の出荷数をキーとしてソートする場合、製品によって出荷時期が違うため、出荷数のデータが存在する場合と存在しない場合とがある。例えば、1月分の出荷数をキーとしてソートを行う場合、キーとなるデータを含んでいるのはパソコンAとパソコンBだけであり、その他のパソコンのレコードはキーを含んでいない。
【0006】
従来は、このような可変長レコードを扱う場合、基準とするべきキーが含まれないレコードには仮のキーデータを与え、ソートを実行する。そして、実行結果を出力する際に、仮のキーデータを削除する。なお、仮のキーデータは、最小値を与えることが一般的である。例えば、0から9の数字を小さい順に並べる場合、仮のキーデータは0となる。その結果、キーを含まない短いレコードは、レコード列の先頭に出力される。
【0007】
【発明が解決しようとする課題】
しかし、キーを含まないレコードに仮のキーデータを付加するため、ソート処理を行う際に、付加された仮のキーデータのための記憶領域が必要になる。つまり、ソート処理の行っている間、各レコードはメモリ等の記憶装置に一時的に格納されるが、レコードが長くなれば、より大きな記憶領域が必要となる。さらに、その記憶領域の作成処理も必要になる。
【0008】
また、キーを含まないレコードに与えられる仮のキーデータは最小値であることが明確であるにも係わらず、そのレコードもソート処理の際の比較対象になるため、ソートの際の比較回数が多くなりソート処理全体の処理時間が長くなってしまう。
【0009】
このように、従来の可変長レコードのソート処理では不必要な処理が多く、ソート処理に時間がかかるとともに、ソート処理の際に大きな記憶領域が必要になるという問題点があった。
【0010】
本発明はこのような点に鑑みてなされたものであり、可変長レコードのソート処理を効率的に行うことができるソート処理装置を提供することを目的とする。また、本発明の別の目的は、可変長レコードのソート処理を効率的に行うことができるソート処理方法を提供することである。
【0011】
【課題を解決するための手段】
図1は上記目的を達成する本発明のソート処理装置の原理図である。本発明では、入力された可変長のレコード10a、10b、10c、10dの長さを確認することにより、レコードにソートの基準となるべきキーが含まれているかどうかを判断し、キーが含まれていれば、ソートの判断基準とすべきキーが含まれているレコードの集まりであるソート対象レコード群20に、キーが含まれていなければ、前記キーが含まれてないレコードの集まりであるソート非対象レコード群30に分配する分配手段1と、キーを判断基準にしてソート対象レコード群20のレコードをソートし、そのレコードをソート順に出力するソート手段2と、が設けられる。
【0012】
また、ソート手段2から出力されたレコードに、ソート非対象レコード群30のレコードを加えて出力するマージ手段3がさらに設けられる。
【0013】
【作用】
分配手段1は、入力された可変長のレコード10a、10b、10c、10dを、ソートの判断基準とすべきキーが含まれているレコードの集まりであるソート対象レコード群20と、前記キーが含まれてないレコードの集まりであるソート非対象レコード群30とに分配する。ソート手段2は、キーを基準にしてソート対象レコード群20内のレコードをソートし、レコードをソート順に出力する。
【0014】
また、マージ手段3は、ソート手段2から出力されたレコードに、ソート非対象レコード群30のレコードを加えて出力する。
これにより、ソートの基準となるキーを含んだレコードのみをソートの対象とすることができる。
【0015】
【実施例】
以下、本発明の一実施例を図面に基づいて説明する。
図1は本発明のソート処理装置の原理図である。入力ファイル10は複数のレコード10a、10b、10c、10dを有している。分配手段1は、入力ファイル10内のレコードを1つずつ解読し、ソートの基準とするキーが含まれているソート対象のレコードは、ソート対象レコード群20の列に加え、ソートの基準とするキーが含まれていないレコードはソート非対象レコード群30の列に加えるように、各レコードを分配する。
【0016】
ソート手段2は、ソート対象レコード群20に並んでいるレコード10a、10cを、キーを判断基準としてソートし、そのレコードをソート順に出力する。マージ手段3は、ソート手段2から出力されたレコードにソート非対象レコード群30に並んでいるレコード10b、10dを加え、出力ファイル40にレコードを出力する。この際、ソート手段2で実行されたソートが昇順のソートの場合には、ソート非対象レコード群30に並んでいるレコードを先に出力し、その後ソート手段2から出力されたレコードを出力する。逆に、実行されたソートが降順のソートの場合には、ソート手段2から出力されたレコードを先に出力し、その後ソート非対象レコード群30に並んでいるレコードを出力する。
【0017】
このようにして、ソートの基準となるキーを含んだレコードのみをソートの対象とすることができる。なお、キーを含まないレコードのみを出力として必要な場合は、マージ手段3を設けずにソート手段2がソートしたレコードを、直接出力することもできる。
【0018】
図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〕出力ファイルに対し、ソート非対象レコード群のレコードを出力する。
【0019】
次に、上記の構成を有するソート処理装置において、入力ファイル内のレコードがどのように処理されるかを具体的な例を用いて説明する。
図3は入力ファイルのレコードの例を示す図である。この入力ファイル10には、10個の可変長のレコード10a〜10jがある。ここで、レコードの先頭から12、13番目のデータをキーとし昇順でソートする場合を想定すると、レコード10aとレコード10cとがキーを含んでいることになる。
【0020】
まず、この入力ファイル10内のレコードは、分配手段1によってソート対象レコード群と、ソート非対象レコード群に分配される。このとき、レコードがキーを含むかどうかは、レコードの長さで判断する。つまり、レコードのデータの数が11以内の場合、そのレコードはキーを含んでいないと判断し、レコードのデータの数が12以上の場合、そのレコードはキーを含んでいると判断する。
【0021】
図4はソート対象レコード群に並んでいるレコードを示す図である。このソート対象レコード群20には、レコード10aとレコード10cが並んでいる。レコード10aのキー11aの値は「23」、レコード10cのキー11cの値は「34」である。
【0022】
図5はソート非対象レコード群に並んでいるレコードを示す図である。このソート非対象レコード群には、レコード10b、レコード10d〜レコード10jが並んでいる。
【0023】
そして、ソート手段2によって、図4に示すソート対象レコード群のレコードが昇順にソートされる。この例では、レコード10aのキーは「23」、レコード10cのキーは「34」であるため、レコード10aの方が先の順番にソートされる。
【0024】
さらに、マージ手段3によって、ソートされたレコード10a、10cに、ソート非対象レコード群に並んでいるレコード10b、10d〜10jが加えられ、出力ファイルに出力される。この際、ソートが昇順で行われているので、ソート非対象のレコードが先に出力される。
【0025】
図6は出力ファイル内のレコードを示す図である。この出力ファイル内のレコードは、先頭からレコード10b、レコード10d、レコード10e、レコード10f、レコード10g、レコード10h、レコード10i、レコード10j、レコード10a、レコード10cの順になっている。なお、この結果はキーを含まないレコードに仮のキー「0」を付加して、全てのレコードを対象にソートした場合と同じ結果である。
【0026】
このようにして、キーを含むレコードのみを対象としてソートすることができる。そのため、キーを含まないレコードに対して、仮のキーを付加する等の処理を行う必要がなくなり、実行するべき処理を減らすことができるとともに、仮のキーを付加するために余分に必要だった記憶領域が不要となる。
【0027】
また、ソートの際のキーの比較は、キーを含むレコードどうしでの比較を行えば良いため、ソートの際の比較の回数が少なくなり、ソート処理にかかる時間を短縮できる。例えば、10件のレコードがあり、そのうちの2件のレコードのみがキーを含んでいる場合を考える。従来の方法では、キーを含まないレコードに仮のキーを付加し、全てのレコードを比較対象とするため、10件のレコードからキーの値が最小のレコードを1つ抽出するためには9回の比較が必要となる。ところが、キーを含むレコードのみで比較を行えば1回の比較ですむ。この例では比較の回数が9分の1になり、大幅な処理時間の短縮が図れる。
【0028】
【発明の効果】
以上説明したように本発明では、可変長のレコードを、ソートの基準となるキーを含むソート対象レコード群と、キーを含まないソート非対象レコード群とに分配し、ソートの判断基準となるキーを含んだレコードのみをソートの対象とすることができるようになるため、可変長のレコードのソートを効率良く実行することができ、ソート処理にかかる時間が短縮できるとともに、ソート処理の際に必要な記憶領域も小さくすることができる。
【図面の簡単な説明】
【図1】本発明のソート処理装置の原理図である。
【図2】本発明のソート処理装置の処理手順を示すフローチャートである。
【図3】入力ファイル内のレコードの例を示す図である。
【図4】ソート対象レコード群に並んでいるレコードを示す図である。
【図5】ソート非対象レコード群に並んでいるレコードを示す図である。
【図6】出力ファイル内のレコードを示す図である。
【図7】可変長レコードの例を示す図である。
【符号の説明】
1 分配手段
2 ソート手段
3 マージ手段
10 入力ファイル
10a、10b、10c、10d レコード
20 ソート対象レコード群
30 ソート非対象レコード群
40 出力ファイル
Claims (5)
- 可変長レコードのソートを行うソート処理装置において、
入力された可変長のレコードの長さを確認することにより、前記レコードにソートの基準となるべきキーが含まれているかどうかを判断し、前記キーが含まれていれば、ソートの判断基準とすべき前記キーが含まれているレコードの集まりであるソート対象レコード群に、前記キーが含まれていなければ、前記キーが含まれてないレコードの集まりであるソート非対象レコード群に分配する分配手段と、
前記キーを判断基準にして前記ソート対象レコード群内のレコードをソートし、ソート順に出力するソート手段と、
を有することを特徴とするソート処理装置。 - 前記ソート手段が出力した前記ソート対象レコード群のレコードに、前記ソート非対象レコード群のレコードを加えて出力するマージ手段をさらに有することを特徴とする請求項1記載のソート処理装置。
- 前記マージ手段は、昇順のソートの場合には、前記ソート非対象レコード群のレコードを出力した後に前記ソート対象レコード群のレコードを出力し、降順のソートの場合には、前記ソート対象レコード群のレコードを出力した後に前記ソート非対象レコード群のレコードを出力することを特徴とする請求項2記載のソート処理装置。
- 可変長レコードのソートを行うソート処理方法において、
入力された可変長のレコードの長さを確認することにより、前記レコードにソートの基準となるべきキーが含まれているかどうかを判断し、前記キーが含まれていれば、ソートの判断基準とすべき前記キーが含まれているレコードの集まりと、前記キーが含まれてないレコードの集まりとに分配し、
前記キーが含まれているレコードを対象に、前記キーを判断基準にしてソートし、ソート順に出力する、
ことを特徴とするソート処理方法。 - 前記キーが含まれているレコードをソートし、ソート順に出力する際には、前記キーを含まないレコードを加えて出力することを特徴とする請求項4記載のソート処理方法。
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 JPH086761A (ja) | 1996-01-12 |
JP3549251B2 true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5608970B2 (ja) * | 2008-10-27 | 2014-10-22 | 日本電気株式会社 | データ並べ替え方法およびデータ処理装置 |
JP7151515B2 (ja) * | 2019-01-29 | 2022-10-12 | 富士通株式会社 | ソート方法、ソートプログラム及びソート装置 |
-
1994
- 1994-06-21 JP JP13898394A patent/JP3549251B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH086761A (ja) | 1996-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3640580B2 (ja) | ソート・マージ処理装置 | |
JP3549251B2 (ja) | ソート処理装置及びソート処理方法 | |
US5873001A (en) | Method for rapid expansion of multi-byte sorting weights table to include user supplied sorting weights | |
US6643632B1 (en) | Data processing system and computer-readable recording medium recorded with a program for causing a computer to process data | |
JP2007133576A (ja) | ソート処理方法及びプログラム | |
JPS59121436A (ja) | デ−タ群のソ−ト方法 | |
JP3129248B2 (ja) | 2次元配列コードを用いた文字列検索方法 | |
JP3070093B2 (ja) | レコード処理装置 | |
JP4507972B2 (ja) | データレコードの検索方法とそのためのプログラム | |
KR0159814B1 (ko) | 전자식 금전등록기에서의 상품관리 방법 | |
JPH1165902A (ja) | 圧縮方法、伸長方法、圧縮装置、伸長装置および記録媒体 | |
US20060026158A1 (en) | Sorting method utilizing memory space efficiently, machine-readable medium thereof, and related apparatus | |
JPH11306183A (ja) | データベース検索システム | |
JPH02136969A (ja) | 文字列検索方式 | |
JPH04241618A (ja) | 帳票作成装置 | |
JPS6052058B2 (ja) | 書類分類装置 | |
JPH0567159A (ja) | 表形式データ処理装置 | |
JP3293551B2 (ja) | ソート処理方法 | |
JP3047401B2 (ja) | データ処理装置 | |
JPS63301325A (ja) | 図書管理システムにおけるデ−タベ−ス方式 | |
JP2768397B2 (ja) | データ処理方式 | |
JPH04559A (ja) | データ検索方式 | |
JPS63173163A (ja) | 情報検索装置 | |
JPH0934899A (ja) | 検索経路出力方法及び装置 | |
JPH0375869A (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) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040420 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080430 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100430 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event 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 |