JPH04355826A - ソート処理装置 - Google Patents

ソート処理装置

Info

Publication number
JPH04355826A
JPH04355826A JP13020691A JP13020691A JPH04355826A JP H04355826 A JPH04355826 A JP H04355826A JP 13020691 A JP13020691 A JP 13020691A JP 13020691 A JP13020691 A JP 13020691A JP H04355826 A JPH04355826 A JP H04355826A
Authority
JP
Japan
Prior art keywords
records
keys
key
string
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
JP13020691A
Other languages
English (en)
Other versions
JP3549113B2 (ja
Inventor
Yoshikazu Masamura
政村 佳計
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 JP13020691A priority Critical patent/JP3549113B2/ja
Publication of JPH04355826A publication Critical patent/JPH04355826A/ja
Application granted granted Critical
Publication of JP3549113B2 publication Critical patent/JP3549113B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、トーナメント技法を用
いて、入力レコード列を指定されるキーに従って規定順
に並び換えるソート処理方式に関し、特に、効率的なソ
ート処理を実現できるようにするソート処理方式に関す
るものである。
【0002】データベース等のデータ処理分野では、ト
ーナメント技法を用いて、入力レコード列を指定される
キーに従って昇順や降順に並び換えるソート処理を実行
する。このようなソート処理は、データ処理の効率を高
めるためにも効率的に実行できるようにしていく必要が
あるのである。
【0003】
【従来の技術】トーナメント技法を用いるレコードのソ
ート処理では、指定されるキーの昇順にレコードをソー
トする場合、トーナメントに参加するレコードの間で最
も小さな値(なお、キーの降順にレコードをソートする
場合には最も大きな値となる)を示すキーを持つレコー
ドを選択し、続いて、この選択により空きとなったキー
の格納位置に次のレコードのキーを割り付けて、この割
り付けたキーが既に選択されているキーよりも小さなも
のである場合には、トーナメントへの参加を保留にし、
一方、大きなものである場合には、そのままトーナメン
トへの参加を許可していくことで、全キーが保留状態と
なるまで指定されるキーの昇順にレコードをソートして
いく。そして、このようにして1ストリングとしてソー
トされたレコードを各ストリング間でマージしていくこ
とで、指定されるキーの昇順にレコードをソートしてい
くことを実現するものである。
【0004】すなわち、例えば、トーナメント規模(ト
ーナメントに参加できるレコード数)が“4”で、入力
レコードのキー値が、“8”→“7”→“6”→“5”
→“4”→“3”→“2”→“1”という完全降順であ
る場合には、図5に示すように、初期状態として、キー
値が“8”,“7”,“6”,“5”というレコードが
トーナメントに参加することになるので、先ず最初に、
キー値“5”のレコードを選択して、この空きとなった
ところにキー値“4”を保留状態として割り付け、次に
、キー値“6”のレコードを選択して、この空きとなっ
たところにキー値“3”を保留状態として割り付け、続
いて、キー値“7”のレコードを選択して、この空きと
なったところにキー値“2”を保留状態として割り付け
、続いて、キー値“8”のレコードを選択して、この空
きとなったところにキー値“1”を保留状態として割り
付けていくことで、“5”→“6”→“7”→“8”と
いうキーの昇順のレコードを1ストリングとしてソート
する。
【0005】次に、保留状態を解除することで、キー値
が“4”,“3”,“2”,“1”というレコードがト
ーナメントに参加することになるので、先ず最初に、キ
ー値“1”のレコードを選択し、次に、キー値“2”の
レコードを選択し、続いて、キー値“3”のレコードを
選択し、続いて、キー値“4”のレコードを選択してい
くことで、“1”→“2”→“3”→“4”というキー
の昇順のレコードを1ストリングとしてソートする。
【0006】そして、最後に、1ストリングとしてソー
トされた“5”→“6”→“7”→“8”というキーの
昇順のレコードと、“1”→“2”→“3”→“4”と
いうキーの昇順のレコードとをマージすることで、“1
”→“2”→“3”→“4”→“5”→“6”→“7”
→“8”というキーの昇順にレコードをソートするので
ある。
【0007】なお、この説明では、入力レコードのキー
値が完全降順であることで説明したので、1ストリング
としてソートされたレコードのキー値が完全昇順になる
ことになるが、入力レコードのキー値が完全降順でない
場合には、ソートされたキー値に飛びがでてしまう。こ
のような飛びは、ストリング間のマージ処理によって完
全昇順にソートされていくことになる。
【0008】
【発明が解決しようとする課題】しかしながら、このよ
うな従来技術では、指定されるキーの昇順にレコードを
ソートするときに、入力レコードのキー値が昇順傾向で
ある場合には、ストリングの長さ(1ストリングとして
ソートされるレコードの数)が長くなるものの、降順傾
向である場合には、ストリングの長さが短くなるととも
に、指定されるキーの降順にレコードをソートするとき
に、入力レコードのキー値が降順傾向である場合には、
ストリングの長さが長くなるものの、昇順傾向である場
合には、ストリングの長さが短くなる。
【0009】これから、指定されるキーの昇順にレコー
ドをソートするときに、入力レコードのキー値に降順傾
向である場合と、指定されるキーの降順にレコードをソ
ートするときに、入力レコードのキー値に昇順傾向であ
る場合には、ストリングの長さが短くなることでストリ
ング数が増えることになって、後続のストリング間のマ
ージ処理の負荷が大きくなるという問題点があった。
【0010】本発明はかかる事情に鑑みてなされたもの
であって、トーナメント技法を用いて、入力レコード列
を指定されるキーに従って規定順に並び換えるときに、
効率的なソート処理を実現できるようにする新たなソー
ト処理方式の提供を目的とするものである。
【0011】
【課題を解決するための手段】図1に本発明の原理構成
を図示する。図中、1は本発明により構成されるソート
処理装置であって、トーナメント技法を用いて、入力レ
コード列を指定されるキーに従って昇順又は降順の規定
順に並び換えるもの、2は入力レコードファイルであっ
て、ソート処理装置1のソート対象となる入力レコード
を管理するもの、3はストリングファイルであって、ソ
ート処理装置1により1ストリングとして並び換えられ
たレコードをストリングを単位にして管理するもの、4
は出力レコードファイルであって、ソート処理装置1に
より規定順に並び換えられたレコードを管理するもので
ある。
【0012】このソート処理装置1は、トーナメント技
法に従って、トーナメントに参加しているレコードをキ
ーの規定順に並び換えてストリングファイル3に格納す
るトーナメント処理手段10と、入力レコードのキーの
並びの傾向を検出する検出手段11と、検出手段11の
検出結果に応じて、入力レコードのキーに演算処理を施
すことでキーの間の大小関係を反転させる演算手段12
と、演算手段12が演算処理を実行するときに、トーナ
メント処理手段10により並び換えられたレコードのキ
ーに演算手段12の施す演算処理の逆演算処理を施すと
ともに、そのレコードの並び順を逆に変更する逆変換手
段13と、ストリングファイル3の管理するストリング
単位のレコードをマージして出力レコードファイル4に
格納するマージ処理手段14とを備える。
【0013】
【作用】本発明では、トーナメント処理手段10が、ト
ーナメント技法に従って、入力レコードをストリングを
単位にしてキーの規定順に並び換えてストリングファイ
ル3に格納していくときに、検出手段11は、1ストリ
ングとして並び換えられたレコードの数と、トーナメン
ト規模とを比較することで、ストリングの長さが短いか
否かを検出する。この検出処理により、ストリングの長
さが短いと検出されるとき、すなわち、入力レコードの
キーの並びの傾向が、トーナメント処理手段10の並び
換えている順序とは逆のものであることが検出されると
きには、演算手段12は、例えば、入力レコードのキー
の各ビットに否定演算を施すことで、入力レコードのキ
ーの大小関係を反転していく。この反転処理に従って、
トーナメント処理手段10は、ストリングの長さを長く
保持しつつ入力レコードを並び換えていくことができる
ようになる。
【0014】そして、逆変換手段13は、演算手段12
が演算処理を実行するときには、トーナメント処理手段
10により並び換えられたレコードのキーに対して、演
算手段12の施す演算処理の逆演算処理を施すことで本
来のキーに戻すとともに、そのレコードの並び順を逆に
変更することで本来のレコードの並び順に戻してストリ
ングファイル3に格納していく。
【0015】このようにして、本発明では、ストリング
の長さを常に長くできるので、ストリングファイル3に
格納されるストリング数が従来よりも大幅に少なくなっ
て、マージ処理手段14の実行するマージ処理の負荷を
小さくでき効率的なソート処理を実現できるようになる
のである。
【0016】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図2に、本発明により構成されるソート処理装置1
の実行する処理フローの一実施例を図示する。次に、こ
の処理フローに従って、本発明のソート処理方式につい
て詳細に説明する。ここで、この処理フローでは、入力
レコードを昇順に並び換えることを想定するとともに、
図1で説明した演算手段12が、入力レコードのキーの
各ビットに否定演算を施すことで、入力レコードのキー
の大小関係を反転していく演算処理を実行することを想
定している。
【0017】ソート処理装置1は、この処理フローに示
すように、先ず最初に、ステップ1で、トーナメントに
参加すべく割り付けられたキーの間で初期トーナメント
処理を実行して、最も小さなキー値を持つレコードを優
勝レコードとして選択する。次に、ステップ2で、演算
手段12の演算処理の実行状態を表示する降順ビットが
ONにセットされているか否かを判断する。このステッ
プ2の判断で、降順ビットがONにセットされていると
判断するとき、すなわち、演算手段12が演算処理を実
行していると判断するときには、続くステップ3で、キ
ーに対して否定演算をすることでキーを本来の値に戻し
てから、続くステップ4で、優勝レコードを下から上へ
とI/Oバッファにブロッキングする。一方、ステップ
2の判断で、降順ビットがOFFにセットされていると
判断するとき、すなわち、演算手段12が演算処理を実
行していないと判断するときには、直ちにステップ4に
進んで、優勝レコードをステップ3経由とは反対の上か
ら下へとI/Oバッファにブロッキングする。なお、I
/Oバッファにブロッキングされる優勝レコードは、上
から順番に読み出されて図1で説明したストリングファ
イル3に格納されていくことになる。
【0018】ソート処理装置1は、続いて、ステップ5
で、入力レコードが残されているか否かを判断して、残
されていない場合にはそのまま処理を終了する。一方、
残されている場合には、続くステップ6で、トーナメン
トに割り付けられたキーの全てが保留状態(トーナメン
トに参加しているキーが、既に選択したキーよりも小さ
なキーだけになる状態)となったか否かを判断する。す
なわち、1ストリング分のレコードの並び換えを行った
か否かを判断するのである。このステップ6の判断で、
保留限界に達したと判断するときには、ステップ7に進
んで、その1ストリングとして並び換えたレコードの数
と、トーナメント規模とを比較することで、その並び換
えた入力レコードが昇順の傾向を持つのか、降順の傾向
を持つのか、ランダムな傾向を持つのかを判断する。こ
の判断処理は、具体的には、例えば、ストリング内のレ
コード数であるストリングの長さが、トーナメント規模
の2倍よりも大きいときには昇順の傾向を持ち、トーナ
メント規模の2倍程度であるときにはランダムな傾向を
持ち、トーナメント規模の2倍よりも小さいときには降
順の傾向を持つということで実行されることになる。
【0019】ソート処理装置1は、このステップ7で、
入力レコードが降順の傾向を持つと判断するとき、すな
わち、並び換えの昇順とは反対の傾向を持つと判断する
ときには、続くステップ8で、演算手段12が演算処理
を実行すべく降順ビットをONにセットしてから保留状
態を解除して、ステップ1に戻っていく。一方、このス
テップ7で、入力レコードが昇順の傾向を持つと判断す
るとき、すなわち、並び換えの昇順と同じ傾向を持つと
判断するときには、そのまま保留状態を解除してステッ
プ1に戻っていく。
【0020】一方、ソート処理装置1は、ステップ6の
判断で、保留限界に達していないと判断するときには、
ステップ9に進んで、降順ビットがONにセットされて
いるか否かを判断して、降順ビットがONにセットされ
ているときには、ステップ10に進んで、キーの否定演
算を実行する。すなわち、図3に示すように、入力レコ
ードのキーの各ビットに否定演算を施すことで、入力レ
コードのキーの大小関係を反転していくのである。この
否定演算処理に従って、降順の傾向を持つ入力レコード
のキーは、見かけ上、昇順の傾向を持つものに変換され
ることになる。そして、続くステップ11で、トーナメ
ント処理を実行して、最も小さなキー値(否定演算を施
す前の最も大きなキー値)を持つレコードを優勝レコー
ドとして選択してステップ2に戻っていく。一方、ステ
ップ9の判断で、降順ビットがONにセットされていな
いと判断するときには、入力レコードが昇順の傾向を持
つので、直ちにステップ11に進み、トーナメント処理
を実行して、最も小さなキー値(本来的な最も小さなキ
ー値)を持つレコードを優勝レコードとして選択してス
テップ2に戻っていく。
【0021】このようにして、トーナメント規模が“4
”で、これから入力されてくる入力レコードのキー値が
、“8”→“7”→“6”→“5”→“4”→“3”→
“2”→“1”という完全降順である場合には、キー値
の否定演算処理に従って、図3で説明したように、この
入力レコードのキー値が、“7”→“8”→“9”→“
10”→“11”→“12”→“13”→“14”と完
全昇順に変換されるので、図4に示すように、初期状態
として、キー値が“7”,“8”,“9”,“10”と
いうレコードがトーナメントに参加することになって、
先ず最初に、キー値“7”のレコードを選択して、この
空きとなったところにキー値“11”を割り付け、次に
、キー値“8”のレコードを選択して、この空きとなっ
たところにキー値“12”を割り付け、続いて、キー値
“9”のレコードを選択して、この空きとなったところ
にキー値“13”を割り付け、続いて、キー値“10”
のレコードを選択して、この空きとなったところにキー
値“14”を割り付け、続いて、キー値“11”のレコ
ードを選択し、続いて、キー値“12”のレコードを選
択し、続いて、キー値“13”のレコードを選択し、続
いて、キー値“14”のレコードを選択していくことで
、“7”→“8”→“9”→“10”→“11”→“1
2”→“13”→“14”というキーの昇順のレコード
を1ストリングとしてソートする。
【0022】このようにして、従来であれば、図5で説
明したように、ストリング数が“2”であったものが、
本発明では、ストリング数が“1”でもってソートでき
るようになるのである。このようにしてソートされたレ
コード列のキー値は、ステップ3の処理に従って、本来
のキー値である“8”→“7”→“6”→“5”→“4
”→“3”→“2”→“1”に戻されるとともに、ステ
ップ4の処理に従って、I/Oバッファに通常の格納の
向きとは逆の下から上へと、“8”→“7”→“6”→
“5”→“4”→“3”→“2”→“1”の順番でもっ
てブロッキングされていく。これにより、ストリングフ
ァイル3に格納されるときには、“1”→“2”→“3
”→“4”→“5”→“6”→“7”→“8”という本
来の順番となるようにセットされることになる。
【0023】
【発明の効果】以上説明したように、本発明によれば、
トーナメント技法を用いて、入力レコード列を指定され
るキーに従って規定順に並び換えるときに、ストリング
の長さを長くできるので、後続のマージ処理の負荷が小
さくできるようになって効率的なソート処理を実現でき
るようになるのである。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明のソート処理装置の実行する処理フロー
の一実施例である。
【図3】キーに施す否定演算の説明図である。
【図4】本発明の処理の説明図である。
【図5】トーナメント技法の説明図である。
【符号の説明】
1    ソート処理装置 2    入力レコードファイル 3    ストリングファイル 4    出力レコードファイル 10  トーナメント処理手段 11  検出手段 12  演算手段 13  逆変換手段 14  マージ処理手段

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  トーナメント技法を用いて、入力レコ
    ード列を指定されるキーに従って昇順又は降順の規定順
    に並び換えるソート処理方式において、1ストリングと
    して並び換えられたレコードの数と、トーナメント規模
    とを比較することで、入力レコードのキーの並びの傾向
    を検出する検出手段(11)と、上記検出手段(11)
    により入力レコードのキーの並びの傾向が上記規定順と
    は逆のものであることが検出されるときに、入力レコー
    ドのキーに演算処理を施すことで、該キーの間の大小関
    係を反転させる演算手段(12)とを備え、1ストリン
    グとしてレコードが並び換えられるときに、該レコード
    のキーが上記演算手段(12)の演算処理の施されるも
    のである場合には、該キーに対して該演算処理の逆演算
    処理を施すとともに、該レコードの並び順を逆に変更す
    るよう処理することを、特徴とするソート処理方式。
  2. 【請求項2】  請求項1記載のソート処理方式におい
    て、演算手段(12)は、入力レコードのキーの各ビッ
    トに否定演算を施すことで、該キーの間の大小関係を反
    転させるよう処理することを、特徴とするソート処理方
    式。
JP13020691A 1991-06-03 1991-06-03 ソート処理装置 Expired - Fee Related JP3549113B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13020691A JP3549113B2 (ja) 1991-06-03 1991-06-03 ソート処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13020691A JP3549113B2 (ja) 1991-06-03 1991-06-03 ソート処理装置

Publications (2)

Publication Number Publication Date
JPH04355826A true JPH04355826A (ja) 1992-12-09
JP3549113B2 JP3549113B2 (ja) 2004-08-04

Family

ID=15028632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13020691A Expired - Fee Related JP3549113B2 (ja) 1991-06-03 1991-06-03 ソート処理装置

Country Status (1)

Country Link
JP (1) JP3549113B2 (ja)

Also Published As

Publication number Publication date
JP3549113B2 (ja) 2004-08-04

Similar Documents

Publication Publication Date Title
CN1287272C (zh) 处理器和挂起线程的方法
KR0185979B1 (ko) 디지탈 데이타 프로세서 및 그 동작 방법
JP2752634B2 (ja) ソート処理装置
JPH04355826A (ja) ソート処理装置
JPS6142031A (ja) ソ−ト処理装置
WO2019156060A1 (ja) 並列ユニオン制御装置、並列ユニオン制御方法、および記憶媒体
Appiah et al. Magnetic bubble sort algorithm
US7783691B2 (en) Sharing of a logic operator having a work register
Buneman In-situ bit-reversed ordering for Hartley transforms
JP3151820B2 (ja) 相対キーを利用したカウント分類法によるソート方式
JP2923952B2 (ja) マージ処理方法
JPH01288920A (ja) データソート装置
Breslauer Fast parallel string prefix-matching
EP3607464A1 (en) Data locking method based on alternating row and column locks
JPH0437455B2 (ja)
JP2001357395A (ja) 画像処理装置およびその方法
JP3277817B2 (ja) データ処理装置
JPS6266326A (ja) 日本語デ−タ整列処理方式
JPH0271327A (ja) ソート処理装置
JPS6367634A (ja) フア−ムウエアロ−デイング方式
JPH0553805A (ja) 電子計算機
JPH0926872A (ja) パイプラインマージソータ
JP2590866B2 (ja) データ検索装置
JP2588932B2 (ja) ソート処理装置
JPH02130629A (ja) 外部ソート算法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040416

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

LAPS Cancellation because of no payment of annual fees