JP3549113B2 - ソート処理装置 - Google Patents
ソート処理装置 Download PDFInfo
- Publication number
- JP3549113B2 JP3549113B2 JP13020691A JP13020691A JP3549113B2 JP 3549113 B2 JP3549113 B2 JP 3549113B2 JP 13020691 A JP13020691 A JP 13020691A JP 13020691 A JP13020691 A JP 13020691A JP 3549113 B2 JP3549113 B2 JP 3549113B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- record
- tournament
- records
- order
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【産業上の利用分野】
本発明は、トーナメント技法を用いて、入力レコード列を指定されるキーに従って規定順に並び換えるソート処理装置に関し、特に、効率的なソート処理を実現できるようにするソート処理装置に関するものである。
【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と、1ストリングとして並び換えられた入力レコードのキーの並びの傾向を検出する検出手段11と、検出手段11の検出結果に応じて、入力レコードのキーに演算処理を施すことでキーの間の大小関係を反転させる演算手段12と、演算手段12が演算処理を実行するときに、トーナメント処理手段10により並び換えられたレコードのキーに演算手段12の施す演算処理の逆演算処理を施すとともに、そのレコードの並び順を逆に変更する逆変換手段13と、ストリングファイル3の管理するストリング単位のレコードをマージして出力レコードファイル4に格納するマージ処理手段14とを備える。
【0013】
【作用】
本発明では、トーナメント処理手段10が、トーナメント技法に従って、入力レコードをストリングを単位にしてキーの規定順に並び換えてストリングファイル3に格納していくときに、検出手段11は、1ストリングとして並び換えられたレコードの数と、トーナメント規模とを比較することで、ストリングの長さが短いか否かを検出する。
この検出処理により、ストリングの長さが短いと検出されるとき、すなわち、1ストリングとして並び換えられた入力レコードのキーの並びの傾向が、トーナメント処理手段10の並び換えている順序とは逆のものであることが検出されるときには、演算手段12は、例えば、入力レコードのキーの各ビットに否定演算を施すことで、入力レコードのキーの大小関係を反転していく。
この反転処理に従って、トーナメント処理手段10は、ストリングの長さを長く保持しつつ入力レコードを並び換えていくことができるようになる。
【0014】
そして、逆変換手段13は、演算手段12が演算処理を実行するときには、トーナメント処理手段10により並び換えられたレコードのキーに対して、演算手段12の施す演算処理の逆演算処理を施すことで本来のキーに戻すとともに、そのレコードの並び順を逆に変更することで本来のレコードの並び順に戻してストリングファイル3に格納していく。
実施例で説明するように、本発明では、トーナメント技法を用いて、入力レコード列を指定されるキーに従って昇順又は降順の規定順に並び換える構成を採るときにあって、(1)トーナメントに割り付けられたキーの全てが保留状態に達した場合に、1ストリングとして並び換えられた優勝レコードの数をトーナメント規模と比較することにより、該優勝レコードのキーの並びの傾向を検出する検出手段と、(2)上記検出結果が上記規定順と逆である並びの傾向を示す場合に、逆順フラグを実行状態に設定するフラグ設定手段と、(3)上記逆順フラグを参照し、該逆順フラグが実行状態にあれば、上記入力レコードのキーに演算処理を施すことで、該キーの間の大小関係を反転させる演算手段と、(4)上記逆順フラグを参照し、該逆順フラグが実行状態にあれば、トーナメントの優勝レコードのキーに対して上記演算処理の逆演算処理を施すとともに、1ストリングとして優勝レコードを並び換えるときに、該優勝レコードの並び順を逆に変更する復元手段とを備えることで、以上に説明した処理を実現するという構成を採っているのである。
【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で、1ストリングとして並び換えた入力レコードが降順の傾向を持つと判断するとき、すなわち、並び換えの昇順とは反対の傾向を持つと判断するときには、続くステップ8で、演算手段12が演算処理を実行すべく降順ビットをONにセットしてから保留状態を解除して、ステップ1に戻っていく。一方、このステップ7で、1ストリングとして並び換えた入力レコードが昇順の傾向を持つと判断するとき、すなわち、並び換えの昇順と同じ傾向を持つと判断するときには、そのまま保留状態を解除してステップ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”→“12”→“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記載のソート処理装置において、
上記演算手段は、上記入力レコードのキーの各ビットに否定演算を施すことで、該キーの間の大小関係を反転させることを、
特徴とするソート処理装置。
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 JPH04355826A (ja) | 1992-12-09 |
JP3549113B2 true 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) |
-
1991
- 1991-06-03 JP JP13020691A patent/JP3549113B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04355826A (ja) | 1992-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mehta et al. | ALGORITHM 643: FEXACT: a FORTRAN subroutine for Fisher's exact test on unordered r× c contingency tables | |
JP4339381B2 (ja) | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 | |
US5487164A (en) | Distribution-based replacement selection sorting system | |
US8306956B2 (en) | Method and apparatus for compressing a data set | |
TW438711B (en) | Genetic procedure for allocating landing calls in an elevator group | |
JP2752634B2 (ja) | ソート処理装置 | |
JPH0776909B2 (ja) | 分類加速装置のデータ保全性特徴 | |
JP3549113B2 (ja) | ソート処理装置 | |
Beigel et al. | Sorting n objects with a k-sorter | |
JPH0666050B2 (ja) | ソート処理方法 | |
JPS6127771B2 (ja) | ||
JP4011015B2 (ja) | Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 | |
JP3151820B2 (ja) | 相対キーを利用したカウント分類法によるソート方式 | |
JPH0436415B2 (ja) | ||
JP4036257B2 (ja) | 共有ライブラリ生成方法およびシステム | |
JPS6143338A (ja) | 連想技術を使用して稀薄なデータベースをサーチする方法 | |
JPH01288920A (ja) | データソート装置 | |
JPH0522942B2 (ja) | ||
JPH0437455B2 (ja) | ||
TWI840715B (zh) | 基於卷積神經網路的運算電路、資料處理方法及電腦可讀取儲存媒體 | |
JPS62121532A (ja) | デ−タ検索方法 | |
Stack et al. | STACK, L. | |
JP3293551B2 (ja) | ソート処理方法 | |
JPS6266326A (ja) | 日本語デ−タ整列処理方式 | |
JPH048814B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020219 |
|
A521 | Written amendment |
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 |