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
Application number
JP13898394A
Other languages
English (en)
Other versions
JP3549251B2 (ja
Inventor
Norio Obata
則夫 小端
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

Landscapes

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

Abstract

(57)【要約】 【目的】 可変長レコードのソート処理を効率的に行う
ことができるソート処理装置及びソート処理方法を提供
する。 【構成】 入力ファイル10は複数のレコード10a、
10b、10c、10dを有している。分配手段1は、
入力ファイル10内のレコードを1つずつ解読し、ソー
トの基準とするキーが含まれているソート対象のレコー
ドは、ソート対象レコード群20の列に加え、ソートの
基準とするキーが含まれていないレコードはソート非対
象レコード群30の列に加えるように、各レコードを分
配する。ソート手段2は、ソート対象レコード群20に
並んでいるレコード10a、10cを、キーを判断基準
としてソートし、そのレコードをソート順に出力する。
マージ手段3は、ソート手段2から出力されたレコード
にソート非対象レコード群30に並んでいるレコード1
0b、10dを加え、出力ファイル40にレコードを出
力する。このようにして、ソートの基準となるキーを含
んだレコードのみをソートの対象とすることができる。

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、10
c、10dを、ソートの判断基準とすべきキーが含まれ
ているレコードの集まりであるソート対象レコード群2
0と、前記キーが含まれてないレコードの集まりである
ソート非対象レコード群30とに分配する分配手段1
と、キーを判断基準にしてソート対象レコード群20の
レコードをソートし、そのレコードをソート順に出力す
るソート手段2と、が設けられる。
【0012】また、ソート手段2から出力されたレコー
ドに、ソート非対象レコード群30のレコードを加えて
出力するマージ手段3がさらに設けられる。
【0013】
【作用】分配手段1は、入力された可変長のレコード1
0a、10b、10c、10dを、ソートの判断基準と
すべきキーが含まれているレコードの集まりであるソー
ト対象レコード群20と、前記キーが含まれてないレコ
ードの集まりであるソート非対象レコード群30とに分
配する。ソート手段2は、キーを基準にしてソート対象
レコード群20内のレコードをソートし、レコードをソ
ート順に出力する。
【0014】また、マージ手段3は、ソート手段2から
出力されたレコードに、ソート非対象レコード群30の
レコードを加えて出力する。これにより、ソートの基準
となるキーを含んだレコードのみをソートの対象とする
ことができる。
【0015】
【実施例】以下、本発明の一実施例を図面に基づいて説
明する。図1は本発明のソート処理装置の原理図であ
る。入力ファイル10は複数のレコード10a、10
b、10c、10dを有している。分配手段1は、入力
ファイル10内のレコードを1つずつ解読し、ソートの
基準とするキーが含まれているソート対象のレコード
は、ソート対象レコード群20の列に加え、ソートの基
準とするキーが含まれていないレコードはソート非対象
レコード群30の列に加えるように、各レコードを分配
する。
【0016】ソート手段2は、ソート対象レコード群2
0に並んでいるレコード10a、10cを、キーを判断
基準としてソートし、そのレコードをソート順に出力す
る。マージ手段3は、ソート手段2から出力されたレコ
ードにソート非対象レコード群30に並んでいるレコー
ド10b、10dを加え、出力ファイル40にレコード
を出力する。この際、ソート手段2で実行されたソート
が昇順のソートの場合には、ソート非対象レコード群3
0に並んでいるレコードを先に出力し、その後ソート手
段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はソート対象レコード群に並んでいる
レコードを示す図である。このソート対象レコード群2
0には、レコード10aとレコード10cが並んでい
る。レコード10aのキー11aの値は「23」、レコ
ード10cのキー11cの値は「34」である。
【0022】図5はソート非対象レコード群に並んでい
るレコードを示す図である。このソート非対象レコード
群には、レコード10b、レコード10d〜レコード1
0jが並んでいる。
【0023】そして、ソート手段2によって、図4に示
すソート対象レコード群のレコードが昇順にソートされ
る。この例では、レコード10aのキーは「23」、レ
コード10cのキーは「34」であるため、レコード1
0aの方が先の順番にソートされる。
【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 (6)

    【特許請求の範囲】
  1. 【請求項1】 可変長レコードのソートを行うソート処
    理装置において、 入力された可変長のレコード(10a、10b、10
    c、10d)を、ソートの判断基準とすべきキーが含ま
    れているレコードの集まりであるソート対象レコード群
    (20)と、前記キーが含まれてないレコードの集まり
    であるソート非対象レコード群(30)とに分配する分
    配手段(1)と、 前記キーを判断基準にして前記ソート対象レコード群
    (20)内のレコードをソートし、ソート順に出力する
    ソート手段(2)と、 を有することを特徴とするソート処理装置。
  2. 【請求項2】 ソート手段(2)が出力した前記ソート
    対象レコード群(20)のレコードに、前記ソート非対
    象レコード群(30)のレコードを加えて出力するマー
    ジ手段(3)をさらに有することを特徴とする請求項1
    記載のソート処理装置。
  3. 【請求項3】 前記マージ手段(3)は、昇順のソート
    の場合には、前記ソート非対象レコード群(30)のレ
    コードを出力した後に前記ソート対象レコード群(2
    0)のレコードを出力し、降順のソートの場合には、前
    記ソート対象レコード群(20)のレコードを出力した
    後に前記ソート非対象レコード群(30)のレコードを
    出力することを特徴とする請求項2記載のソート処理装
    置。
  4. 【請求項4】 前記分配手段(1)は、前記レコード
    (10a、10b、10c、10d)の長さを確認する
    ことにより、前記キーを含むかどうかを判断することを
    特徴とする請求項1記載のソート処理装置。
  5. 【請求項5】 可変長レコードのソートを行うソート処
    理方法において、 入力された可変長のレコード(10a、10b、10
    c、10d)を、ソートの判断基準とすべきキーが含ま
    れているレコードの集まりと、前記キーが含まれてない
    レコードの集まりとに分配し、 前記キーが含まれているレコードを対象に、前記キーを
    判断基準にしてソートし、ソート順に出力する、 ことを特徴とするソート処理方法。
  6. 【請求項6】 前記キーが含まれているレコードをソー
    トし、ソート順に出力する際には、前記キーを含まない
    レコードを加えて出力することを特徴とする請求項5記
    載のソート処理方法。
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 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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 ソート方法、ソートプログラム及びソート装置

Cited By (2)

* Cited by examiner, † Cited by third party
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