JP3151820B2 - 相対キーを利用したカウント分類法によるソート方式 - Google Patents

相対キーを利用したカウント分類法によるソート方式

Info

Publication number
JP3151820B2
JP3151820B2 JP24924190A JP24924190A JP3151820B2 JP 3151820 B2 JP3151820 B2 JP 3151820B2 JP 24924190 A JP24924190 A JP 24924190A JP 24924190 A JP24924190 A JP 24924190A JP 3151820 B2 JP3151820 B2 JP 3151820B2
Authority
JP
Japan
Prior art keywords
key
record
value
records
input
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
JP24924190A
Other languages
English (en)
Other versions
JPH04127321A (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 JP24924190A priority Critical patent/JP3151820B2/ja
Publication of JPH04127321A publication Critical patent/JPH04127321A/ja
Application granted granted Critical
Publication of JP3151820B2 publication Critical patent/JP3151820B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔概要〕 相対キーを利用したカウント分離法によるソート方式
に関し、 ハードウェア量を少なくし,且つ、高速に、多量のレ
コードを、キー値の順にソートする方式を提供すること
を目的とし、 複数個のレコードを格納する入力用バッファと出力用
バッファと,該複数個の入力レコードの作業領域と,各
レコードの順番を付けるカウンタ領域と備えて、該入力
用バッファに格納されたレコードのキー値の順にソート
して出力用バッファに格納するのに、上記カウンタ領域
を、唯1つ設けて、上記入力用バッファに入力される複
数個のレコードに対して、特定のレコードのキー値を基
準値として設定し、そのキー値を‘0'とし、その他のレ
コードのキー値に対して、上記基準値のキーとの相対値
である相対キーを、相対キー=(変換前のキー)−(基
準値のキー)で算出して、各レコードの相対キーを上記
作業領域に格納し、該格納した作業領域の相対キーが
「負」であるならば、上記カウンタ領域に‘1'を加算
し、該相対キーが「正」,又は、「0」ならば、その侭
にする処理を繰り返し、上記入力用バッファの全レコー
ドに対して終了したとき、上記カウンタ領域に設定され
ている値だけ「空き」の出力用バッファをスキップした
場所に、上記基準値として設定したレコードを転送する
ことを繰り返してソートするように構成する。
〔産業上の利用分野〕
本発明は、相対キーを利用したカウント分離法による
ソート方式に関する。
最近、各種の分野において、計算機システムによるデ
ータ処理が行われているが、該データが多量のレコード
から構成されている場合、該レコード中の特定の情報を
キーとしてソートすることが行われる。
この場合、できる限り、少ないハードウェア量(例え
ば、メモリ量)で、高速にソートできることが要求され
る。
〔従来の技術と発明が解決しようとする課題〕
第2図は従来のカウント分離法によるソート方式を説
明する図であり、(a)はハードウェア構成の例を示
し、(b1)〜(b4)は、カウント分離法によるソート方
式を模式的示している。
カウント分離法によって、複数個のレコードをソート
する場合には、(a)図に示したように、入力用バッフ
ァ1と,出力用バッファ2と、入力レコードの作業領域
3と,各レコードの順番を付けるカウンタ領域(以下、
カウンタということがある)4とを必要とする。
以下、カウント分離法によるソート方式の手順を(b
1)〜(b4)によって説明する。
1)先ず、カウンタ4の値を‘0'にし、最初のレコード
(レコード1)のキー部のキー値(‘8')を作業領域3
に入力し、入力用バッファ1をポイントするが、それ以
外は何も行わない。{(b1)図参照} 2)次のレコードのキー値を、該作業領域3に入力し、
既に、入力済みのレコードのキー値との検査を行う。該
検査は、以下の規則により行い、その結果に基づいて、
カウンタ4の値を調整する。
(イ)すでに入力済みのレコードのキー値が、最新のレ
コードのキー値より小さい(キー値として強い)時、最
新のレコードのカウンタ4に‘1'を加える。
(ロ)すでに入力済みのレコードのキー値が、最新のレ
コードのキー値より大きい(キー値として弱い)時の、
入力済みのレコードのカウンタ4に‘1'を加える。
3)上記2)の処理を、入力用バッファ1に入力されて
いる全てのレコード(本例では、レコード1〜4)につ
いて繰り返す。
具体例で説明すると、レコード2のキー値(‘3')を
作業領域3に入力したとき、すでに,入力済みのレコー
ド1のキー値(‘8')との間で上記の検査を行う。
該入力済みのレコード1のキー値が、最新のレコード
2のキー値より弱い(具体的には、キー値が大きい)の
で、上記(ロ)の規則に従って、入力済みのレコードの
カウンタ4に‘1'が加算される結果、該カウンタ4は
(b2)図に示した通りとなる。
次に、最新のレコード3のキー値(‘2')が作業領域
3に入力された時点では、該レコード3のキー値と、入
力済みのレコード1,2の各キー値との間で上記の検査が
行われるが、上記(ロ)の規則に従う結果、各レコード
1,2,3のカウンタ4の値は、「2」「1」「0」とな
る。
次に、最新のレコード4のキー値(‘7')が作業領域
3に入力され、該レコード3のキー値と、入力済みのレ
コード1,2の各キー値との間で上記の検査が行われる場
合、レコード1との間では、上記規則(ロ)に従い、レ
コード2,3との間では、上記規則(イ)に従う結果、レ
コード1のカウンタ3の値は‘2'→‘3'となり、レコー
ド2,3のカウンタ3の値は、その侭となり、レコード4
のカウンタ3には、「+1+1=2」となって、結局、
(b3)図に示したようになる。
4)入力用バッファ1に入力されている全てのレコード
のキー値に対する上記検査が終了したら、各レコードの
カウンタの値より、例えば、‘1'大きい位置の出力用バ
ッファ2に転送する{(b4)図参照} 上記の処理を、ソート対象の全てのレコードについ
て、例えば、入力用バッファ1のレコード数を単位にし
て繰り返す。
上記、従来のカウンタ分離法でソートを行う場合、入
力用バッファ1を構成している個数と同じ数のカウンタ
4を必要とする問題と、該入力用バッファ1に入力され
ている全てのレコードに対する検査が終了するまで、出
力用バッファ2にレコードを転送することができない問
題と、該ソートの手順には、レコード間のキー値を比較
する命令を実行する必要があり、時間がかかる問題があ
った。
本発明は上記従来の欠点に鑑み、相対キーを利用した
カウント分離法によってソートを行うのに、ハードウェ
ア量を少なくし,且つ、高速に、多量のレコードを、キ
ー値の順にソートする方式を提供することを目的とする
ものである。
〔課題を解決するための手段〕
上記の問題点は下記の如くに構成した相対キーを利用
したカウント分離法によるソート方式によって解決され
る。
複数個のレコードを格納する入力用バッファと出力用
バッファと,該複数個の入力レコードの作業領域と,各
レコードの順番を付けるカウンタ領域と備えて、該入力
用バッファに格納されたレコードのキー値の順にソート
して出力用バッファに格納する方式であって、 上記カウンタ領域を、唯1つ設けて、 上記入力用バッファに入力される複数個のレコードに
対して、特定のレコードのキー値を基準値として設定
し、そのキー値を‘0'とし、 その他のレコードのキー値に対して、上記基準値のキ
ーとの相対値である相対キーを、 相対キー=(変換前のキー)−(基準値のキー)で算
出して、各レコードの相対キー値を上記作業領域に格納
し、 該格納した作業領域の相対キーが「負」であるなら
ば、上記カウンタ領域に‘1'を加算し、該相対キーが
「正」,又は、「0」ならば、その侭にする処理を繰り
返し、上記入力用バッファの全レコードに対して終了し
たとき、上記カウンタ領域(4a)に設定されている値だ
け「空き」の出力用バッファをスキップした場所に、上
記基準値として設定したレコードを転送することを繰り
返してソートするように構成する。
〔作用〕
即ち、本発明によれば、複数個のレコードを格納する
入力用バッファと出力用バッファと,該複数個の入力レ
コードの作業用領域と,各レコードの順番を付けるカウ
ンタ領域と備えて、該入力用バッファに格納されたレコ
ードのキー値の順にソートして出力用バッファに格納す
るのに、唯1つのカウンタを設けて、例えば、入力用バ
ッファの最初に入力されているレコードのキー値を基準
値として、該基準値のレコードのキー値と各レコードの
キー値との差を 相対キー=(変換前のキー)−(基準値のキー)とし
て計算し、その相対キーが、「負」であるならば、上記
カウンタに‘1'を加算し、該相対キーが、「正」,又
は、「0」であるときは、該カウンタの値をその侭とす
る処理を、該入力用バッファに格納されている全てのレ
コードに対して行う。
この処理により、基準キーより強いキー値(具体的に
は、キー値が小さい)を持つレコードが存在すると、そ
のレコードの数が、カウンタでは計数されることになる
ので、該基準キーを有するレコードを、その数だけ弱い
方向にスキップして転送することを繰り返すことでソー
トを行うことができる。
更に、このソート方式では、レコード間の演算は、従
来のカウント分離法の比較演算ではなく、単なる減算で
済むので、それだけ、高速にソートを行うことができ
る。又、カウンタは、1組の入力用バッファに対して、
唯1個で済み、ハードウェア量を削減することができ、
それだけ、多くのレコードを処理することができる。
又、このカウント分離法は、入力レコードを全て入力用
バッファに読み込んでソートする内部ソート技法(即
ち、入力用バッファに入力レコードを全て読み込んでソ
ートする技法)であるが、前述のように、入力用バッフ
ァに入力された最初の基準レコードに対して、他の全て
のレコードとの相対キーを求めた時点で、該基準となっ
たレコードを出力用バッファに転送でき、その空いた入
力用バッファに後続する新たなレコードを入力すること
ができるので、レコードの移動とキー作成、即ち、入力
用バッファへの新たなレコードの入力と、該レコードの
キー値,又は、相対キー値を作業領域に転送し、入力用
バッファをポイントする処理が並行して行える。その結
果、入力レコードが、該入力用バッファより多くて、上
記内部ソート技法を利用できない場合に行う、所謂、外
部ソート技法において、該入力用バッファ分のソート結
果であるストリングを生成する時に、本発明のカウント
分離法を活用することができる効果が得られる。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
第1図は本発明の一実施例を示した図であって、
(a)は構成例を示し、(b1)〜(b6)は本発明のカウ
ント分離法によるソートの動作を模式的に示している。
本発明においては、複数個のレコードを格納する入力
用バッファ1と出力用バッファ2と,該複数個の入力レ
コードの作業領域3と,各レコードの順番を付けるカウ
ンタ領域4aとを備えて、該入力用バッファ1に格納され
たレコードのキー値の順にソートして出力用バッファ2
に格納するのに、上記カウンタ領域4aを、唯1つ設け
て、上記入力用バッファ1に入力される複数個のレコー
ドに対して、特定のレコードのキー値を基準値として設
定し、そのキー値を‘0'とし、その他のレコードのキー
値に対して、上記基準値のキーとの相対値である相対キ
ーを、 相対キー=(変換前のキー)−(基準値のキー)で算
出して、各レコードを上記作業領域3に格納し、該格納
した作業領域の相対キーが「負」であるならば、上記カ
ウンタ領域4に‘1'を加算し、該相対キーが「正」,又
は、「0」ならば、その侭にする処理を繰り返し、上記
入力用バッファ1の全レコードに対して終了したとき、
上記カウンタ領域4aに設定されている値だけ「空き」の
出力用バッファ2をスキップした場所に、上記基準値と
して設定したレコードを転送することを繰り返してソー
トする手段が、本発明を実施するのに必要な手段であ
る。尚、全図を通して同じ符号は同じ対象物を示してい
る。
以下、第1図に従って、本発明による相対キーを利用
したカウント分離法によるソート方式を説明する。
本発明においては,(a)図に示したように、入力用
バッファ1,出力用バッファ2,入力レコードのキー値を格
納する作業領域3と、唯一つのカウンタ領域(カウン
タ)4aを設ける。
(1)先ず、カウンタ4aの値を‘0'にし、最初のレコー
ド1のキー部のキー値を相対キーの基準値として、作業
領域3に該キー値を格納し、該最新のレコードの格納さ
れている入力用バッファ1をポイントする。{(b1)図
参照} (2)次のレコード2のキー部と,上記基準値となって
いるレコード1のキー部を利用して、相対キーを、 相対キー=(変換前のキー)−(基準値のキー)の算
出式で生成し、作業領域3に格納する。{(b2)図参
照} (3)このとき、該作業領域3に格納した相対キーが
「負」ならば、カウンタ4aを‘+1'し、該相対キーが
「正」,又は、「0」ならば、該カウンタ4aは、その侭
にしておく。
(4)上記(2),(3)の処理を、入力用バッファ1
に格納されている全てのレコード(本実施例では、レコ
ード1〜4)に対して行う。{(b3),(b4)図参照} (5)全てのレコードに対して、上記の処理が終了した
とき、カウンタ4aの値だけ、空きの出力用バッファ2を
スキップして、その場所に、上記基準値として設定した
レコード(レコード1)を転送する。
何故ならば、該カウンタ4aの値は、上記基準値となっ
ているキー値を持つレコードより強いキー値(具体的に
は、キー値が小さい)を持つレコードの数を示している
からである。{(b5)図参照} (6)最初のレコード1の転送が終了したら、2番目に
入力したレコード2を次の基準値を持つレコードとして
設定し、上記カウンタ4aの値を‘0'にして、上記(2)
〜(6)を繰り返す。{(b6)図参照} 最後のレコード(本実施例では、レコード4)を、そ
の時点で空いている場所に転送して、該入力用バッファ
1に格納されていたレコード1〜4に対するソート処理
を終了する。
若し、ソート対象のレコードの数が、上記入力用バッ
ファ1の数より多いとき、上記(5)の転送処理後に空
いた入力用バッファ1に、次のブロックの最初のレコー
ド(本実施例では、レコード5〜)から入力して、最初
のレコードでは、そのキー値を、次のレコード以降で
は、該ブロックの最初のレコードを基準値とした相対キ
ーを生成して、作業領域3に格納し、カウンタ4aを上記
のように調整することを繰り返し、該入力用バッファに
一杯になった時点で、上記基準値のレコードを出力用バ
ッファに転送することを繰り返してソートを行う。
この繰り返し処理で生成されるソート結果(これを、
前述のように、ストリングという)が全て集まった時点
で、各ストリングの先頭のレコードを生成順に取り出
し、並び変えて1本のストリングを生成することによ
り、該入力用バッファ1の数より多いレコードに対する
ソートを行うことができる。このソート技法を、前述の
ように、外部ソート技法という。
本発明の相対キーを利用したカウント分離法によるソ
ート方式は、上記のように、外部ソート技法のストリン
グ生成にも活用することができるのである。
〔発明の効果〕
以上、詳細に説明したように、本発明の相対キーを利
用したカウント分離法によるソート方式は、従来のカウ
ント分離法が、入力用バッファに入力されている1レコ
ードに対して1つのカウンタ領域(カウンタ)を必要と
したのに対して、相対キーを利用することにより、カウ
ンタ領域が1つで済むことになり、それだけ、多くのレ
コードを処理することができる。又、該カウント分離法
は内部ソート技法であるが、相対キーを導入することに
より、残りの全レコードに対して、相対キーを作成した
時点で、基準値としたレコードを出力用バッファに移動
することができるため,該レコードの移動と、次のブロ
ックの最初のレコードを該入力用バッファに入力し,且
つ、作業領域に、該レコードのキー値の設定,相対キー
の設定といったキー作成を並行して行うことができる。
従って、前述のように、外部ソート技法のストリング生
成に、本発明の相対キーを利用したカウント分離法によ
るソート技法を活用することができる効果がある。又、
相対キーの利用により、従来のカウント分離法で必要で
あった比較命令を極力抑えることができ、ソート実行時
間を削減することができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示した図, 第2図は従来のカウント分離法によるソート方式を説明
する図, である。 図面において、 1は入力用バッファ,2は出力用バッファ, 3は作業領域, 4,4aはカウンタ領域(カウンタ), をそれぞれ示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数個のレコードを格納する入力用バッフ
    ァ(1)と出力用バッファ(2)と,該複数個の入力レ
    コードの作業領域(3)と,各レコードの順番を付ける
    カウンタ領域(4a)と備えて、該入力用バッファ(1)
    に格納されたレコードのキー値の順にソートして出力用
    バッファ(2)に格納する方式であって、 上記カウンタ領域(4a)を、唯1つ設けて、 上記入力用バッファ(1)に入力される複数個のレコー
    ドに対して、特定のレコードのキー値を基準値として設
    定し、そのキー値を‘0'とし、 その他のレコードのキー値に対して、上記基準値のキー
    との相対値である相対キーを、 相対キー=(変換前のキー)−(基準値のキー)で算出
    して、各レコードの相対キー値を上記作業領域(3)に
    格納し、 該格納した作業領域の相対キーが「負」であるならば、
    上記カウンタ領域(4)に‘1'を加算し、該相対キーが
    「正」,又は、「0」ならば、その侭にする処理を繰り
    返し、上記入力用バッファ(1)の全レコードに対して
    終了したとき、上記カウンタ領域(4a)に設定されてい
    る値だけ「空き」の出力用バッファ(2)をスキップし
    た場所に、上記基準値として設定したレコードを転送す
    ることを繰り返してソートすることを特徴とする相対キ
    ーを利用したカウント分離法によるソート方式。
JP24924190A 1990-09-19 1990-09-19 相対キーを利用したカウント分類法によるソート方式 Expired - Fee Related JP3151820B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24924190A JP3151820B2 (ja) 1990-09-19 1990-09-19 相対キーを利用したカウント分類法によるソート方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24924190A JP3151820B2 (ja) 1990-09-19 1990-09-19 相対キーを利用したカウント分類法によるソート方式

Publications (2)

Publication Number Publication Date
JPH04127321A JPH04127321A (ja) 1992-04-28
JP3151820B2 true JP3151820B2 (ja) 2001-04-03

Family

ID=17190028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24924190A Expired - Fee Related JP3151820B2 (ja) 1990-09-19 1990-09-19 相対キーを利用したカウント分類法によるソート方式

Country Status (1)

Country Link
JP (1) JP3151820B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060116983A1 (en) * 2004-11-30 2006-06-01 International Business Machines Corporation System and method for ordering query results
JP5165654B2 (ja) * 2009-08-30 2013-03-21 株式会社高速屋 ビット列データソート装置、方法及びプログラム
JP5143797B2 (ja) * 2009-08-18 2013-02-13 株式会社高速屋 ビット列データソート装置、ソート方法及びプログラム
US8515976B2 (en) 2008-12-22 2013-08-20 KOUSOKUYA, Inc. Bit string data sorting apparatus, sorting method, and program

Also Published As

Publication number Publication date
JPH04127321A (ja) 1992-04-28

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
JPH02178730A (ja) 分割法を用いた内部ソート方式
JP3151820B2 (ja) 相対キーを利用したカウント分類法によるソート方式
EP0912922B1 (en) Method and system for performing a boolean operation on bit strings using a maximal bit slice
JPH01297723A (ja) ソート処理装置
US7917459B2 (en) System and method for executing complex IF-THEN clauses
US5542080A (en) Method for controlling execution of data driven type information processor
US3662402A (en) Data sort method utilizing finite difference tables
JP2959497B2 (ja) データ処理装置及びデータ処理方法
JPH02289005A (ja) 計数情報の整列処理方式
JP2923952B2 (ja) マージ処理方法
JP2564881B2 (ja) ビット列比較方式
JP2752762B2 (ja) ノードマッチング処理方式
Murphy et al. A mathematical programming approach to the scheduling of sorting operations
JP3277817B2 (ja) データ処理装置
JP2537683B2 (ja) デジタルデ―タ入力方法
JPS6243219B2 (ja)
JP2989962B2 (ja) ベクトル処理装置
JP3293544B2 (ja) 補助記憶装置を用いたソート方式
CA2239157C (en) Method and system for performing a boolean operation on bit strings using a maximal bit slice
JPS61110233A (ja) デ−タ処理装置
JP2000315153A (ja) 更新行数出力方法
JPH01177124A (ja) ソータ記憶管理方式
JPH02259827A (ja) レコード編集方式
Zhong et al. Parallel external selection algorithm on distributed memory systems

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees