JP3549251B2 - ソート処理装置及びソート処理方法 - Google Patents

ソート処理装置及びソート処理方法 Download PDF

Info

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
Application number
JP13898394A
Other languages
English (en)
Other versions
JPH086761A (ja
Inventor
則夫 小端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP13898394A priority Critical patent/JP3549251B2/ja
Publication of JPH086761A publication Critical patent/JPH086761A/ja
Application granted granted Critical
Publication of JP3549251B2 publication Critical patent/JP3549251B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【産業上の利用分野】
本発明はレコードの並べ替えを行うためのソート処理装置及びソート処理方法に関し、特にそれぞれの長さの違う可変長レコードの並べ替えを行うためのソート処理装置及びソート処理方法に関する。
【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. 前記ソート手段が出力した前記ソート対象レコード群のレコードに、前記ソート非対象レコード群のレコードを加えて出力するマージ手段をさらに有することを特徴とする請求項1記載のソート処理装置。
  3. 前記マージ手段は、昇順のソートの場合には、前記ソート非対象レコード群のレコードを出力した後に前記ソート対象レコード群のレコードを出力し、降順のソートの場合には、前記ソート対象レコード群のレコードを出力した後に前記ソート非対象レコード群のレコードを出力することを特徴とする請求項2記載のソート処理装置。
  4. 可変長レコードのソートを行うソート処理方法において、
    入力された可変長のレコードの長さを確認することにより、前記レコードにソートの基準となるべきキーが含まれているかどうかを判断し、前記キーが含まれていれば、ソートの判断基準とすべき前記キーが含まれているレコードの集まりと、前記キーが含まれてないレコードの集まりとに分配し、
    前記キーが含まれているレコードを対象に、前記キーを判断基準にしてソートし、ソート順に出力する、
    ことを特徴とするソート処理方法。
  5. 前記キーが含まれているレコードをソートし、ソート順に出力する際には、前記キーを含まないレコードを加えて出力することを特徴とする請求項4記載のソート処理方法。
JP13898394A 1994-06-21 1994-06-21 ソート処理装置及びソート処理方法 Expired - Fee Related JP3549251B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5608970B2 (ja) * 2008-10-27 2014-10-22 日本電気株式会社 データ並べ替え方法およびデータ処理装置
JP7151515B2 (ja) * 2019-01-29 2022-10-12 富士通株式会社 ソート方法、ソートプログラム及びソート装置

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