JP2002091757A - ソート処理方法 - Google Patents
ソート処理方法Info
- Publication number
- JP2002091757A JP2002091757A JP2000318619A JP2000318619A JP2002091757A JP 2002091757 A JP2002091757 A JP 2002091757A JP 2000318619 A JP2000318619 A JP 2000318619A JP 2000318619 A JP2000318619 A JP 2000318619A JP 2002091757 A JP2002091757 A JP 2002091757A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sorting
- sort
- grouping
- processing method
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 ソート処理時間を短縮する。
【解決手段】 ソート対象データのデータを、その範囲
ごとにいくつかのグループに入れ替えをし、次にそのグ
ループごとにソートを行うことにより、少ない処理時間
で全てのデータのソートを行う。
ごとにいくつかのグループに入れ替えをし、次にそのグ
ループごとにソートを行うことにより、少ない処理時間
で全てのデータのソートを行う。
Description
【0001】
【発明の属する技術分野】本発明は、特に膨大なデータ
を持つファイルのソート処理に適した、ソート処理方法
に関する。
を持つファイルのソート処理に適した、ソート処理方法
に関する。
【0002】
【従来の技術】従来の直接選択ソート処理方法では、ソ
ート対象データのデータ数をnとした場合、ソート処理
に要する処理回数は、およそn2÷2で計算される。仮
にnを1,000とした場合の処理回数は、およそ50
0,000回である。
ート対象データのデータ数をnとした場合、ソート処理
に要する処理回数は、およそn2÷2で計算される。仮
にnを1,000とした場合の処理回数は、およそ50
0,000回である。
【0003】
【発明が解決しようとする課題】従来の直接選択ソート
処理方法では、ソート対象データのデータ数が膨大にな
ると処理に時間がかかるという問題があった。本発明
は、かかる問題点に鑑みて創案されたもので、グループ
分けの数を増やせば増やすほど、ソート処理に要する処
理時間を大幅に短縮させることができる。
処理方法では、ソート対象データのデータ数が膨大にな
ると処理に時間がかかるという問題があった。本発明
は、かかる問題点に鑑みて創案されたもので、グループ
分けの数を増やせば増やすほど、ソート処理に要する処
理時間を大幅に短縮させることができる。
【0004】
【課題を解決するための手段】本発明は、ソート対象デ
ータのデータを、その範囲ごとにいくつかのグループに
入れ替えをし、次にそのグループごとにソートを行うこ
とにより、少ない処理時間で全てのデータのソートを行
うことができる。
ータのデータを、その範囲ごとにいくつかのグループに
入れ替えをし、次にそのグループごとにソートを行うこ
とにより、少ない処理時間で全てのデータのソートを行
うことができる。
【0005】
【発明の実施の形態】従来の直接選択ソート処理方法で
は、ソート対象データのデータ数をnとした場合、ソー
ト処理に要する処理回数は、およそn2÷2で計算され
る。これは、データ数nを一辺とした、直角二等辺三角
形の面積に相当する(図3)。
は、ソート対象データのデータ数をnとした場合、ソー
ト処理に要する処理回数は、およそn2÷2で計算され
る。これは、データ数nを一辺とした、直角二等辺三角
形の面積に相当する(図3)。
【0006】しかし、ソート対象データの範囲を例えば
0〜499までとした時、それぞれのデータを、例えば
0〜99,100〜199,200〜299,300〜
399,400〜499の範囲ごとにグループ分けをし
(図1)、次に、それぞれのグループごとにソートを行
えば(図2)、まとめてソートを行う従来のソート処理
方法よりも少ない処理回数で全てのデータのソートを行
うことができる(図4)。
0〜499までとした時、それぞれのデータを、例えば
0〜99,100〜199,200〜299,300〜
399,400〜499の範囲ごとにグループ分けをし
(図1)、次に、それぞれのグループごとにソートを行
えば(図2)、まとめてソートを行う従来のソート処理
方法よりも少ない処理回数で全てのデータのソートを行
うことができる(図4)。
【0007】しかも本発明は、グループ分けの数を増や
せば増やすほど、ソート処理に要する処理時間を短縮さ
せることができる。グループ分けの数が5個の場合は約
5分の1に。10個の場合は約10分の1に。100個
の場合は、約100分の1に短縮される。
せば増やすほど、ソート処理に要する処理時間を短縮さ
せることができる。グループ分けの数が5個の場合は約
5分の1に。10個の場合は約10分の1に。100個
の場合は、約100分の1に短縮される。
【0008】しかし本発明の効果を十分に発揮させるに
は、各グループごとにデータをなるべく均等に配分する
必要がある。そのためには、データの範囲が明らかであ
り、かつ、データの範囲がなるべく均等に散らばってい
ることが望ましい。この条件に該当しないデータファイ
ルの場合は、グループ分けを行う前に、データの傾向を
調査する処理が必要となる。
は、各グループごとにデータをなるべく均等に配分する
必要がある。そのためには、データの範囲が明らかであ
り、かつ、データの範囲がなるべく均等に散らばってい
ることが望ましい。この条件に該当しないデータファイ
ルの場合は、グループ分けを行う前に、データの傾向を
調査する処理が必要となる。
【0009】図5は、データの傾向を調査するための処
理手順を示したものである。まずソート対象データの中
から、(グループ分けの数−1)×3個のデータを無作
為に取り出し(図5)、次に、そのデータを昇順(ま
たは降順)に取り出していき、3個取り出すごとにその
平均値を求める(図5)。こうして求めた値を、グル
ープ分けを行う際の基準値とすることにより(図5
)、範囲が不明確なデータファイル、もしくはデータ
の範囲に偏りのあるデータファイルの場合においても、
およそ均等にグループ分けを行うことができる。なお、
データを3個取り出してその平均値を求めるのは、基準
値の精度を上げるためである。
理手順を示したものである。まずソート対象データの中
から、(グループ分けの数−1)×3個のデータを無作
為に取り出し(図5)、次に、そのデータを昇順(ま
たは降順)に取り出していき、3個取り出すごとにその
平均値を求める(図5)。こうして求めた値を、グル
ープ分けを行う際の基準値とすることにより(図5
)、範囲が不明確なデータファイル、もしくはデータ
の範囲に偏りのあるデータファイルの場合においても、
およそ均等にグループ分けを行うことができる。なお、
データを3個取り出してその平均値を求めるのは、基準
値の精度を上げるためである。
【0010】図7は、グループ分けを行うアルゴリズム
を示したフローチャートである。まず、各グループごと
のデータ数を配列Max(n)に求め(ステップ1)、
次に、それを基にそれぞれのグループごとのデータ格納
位置の上限と下限を、配列Max(n)とMin(n)
に求める(ステップ2)。この時点で、配列Max
(n)とMin(n)の指す位置は、図6のようにな
る。
を示したフローチャートである。まず、各グループごと
のデータ数を配列Max(n)に求め(ステップ1)、
次に、それを基にそれぞれのグループごとのデータ格納
位置の上限と下限を、配列Max(n)とMin(n)
に求める(ステップ2)。この時点で、配列Max
(n)とMin(n)の指す位置は、図6のようにな
る。
【0011】次に、先頭のグループの一番後ろからデー
タを1つ取り出す。この時、そのグループに属するデー
タがない場合は、次のグループの一番後ろからデータを
取り出す。(ステップ3)
タを1つ取り出す。この時、そのグループに属するデー
タがない場合は、次のグループの一番後ろからデータを
取り出す。(ステップ3)
【0012】ステップ3において取得したデータから、
そのデータの属すべきグループ番号を算出して然るべき
場所へ格納し、あふれたデータを、新たな取得データと
する(ステップ4)(図8)。そしてもし最初にデータ
を取り出した位置でデータの入れ替えを行った場合は、
次のグループの一番後ろからデータを取り出し、新たな
取得データとする(ステップ5)。この手順を繰り返す
ことにより、ソート対象データファイルの中だけでデー
タの入れ替えを行うことによりグループ分けが完了す
る。従って、メモリ消費量も少なくて済む。
そのデータの属すべきグループ番号を算出して然るべき
場所へ格納し、あふれたデータを、新たな取得データと
する(ステップ4)(図8)。そしてもし最初にデータ
を取り出した位置でデータの入れ替えを行った場合は、
次のグループの一番後ろからデータを取り出し、新たな
取得データとする(ステップ5)。この手順を繰り返す
ことにより、ソート対象データファイルの中だけでデー
タの入れ替えを行うことによりグループ分けが完了す
る。従って、メモリ消費量も少なくて済む。
【0013】最後に、続くソート処理に備え、ステップ
4の過程で変動した配列Min(n)の値を元に戻す
(ステップ6)。なお、ソート処理によっては、この処
理はぜひとも必要ではない。
4の過程で変動した配列Min(n)の値を元に戻す
(ステップ6)。なお、ソート処理によっては、この処
理はぜひとも必要ではない。
【0014】
【発明の効果】以上説明してきたように本発明は、少な
いメモリ消費量で、膨大なデータのソートに要する処理
時間を大幅に短縮させることができる。
いメモリ消費量で、膨大なデータのソートに要する処理
時間を大幅に短縮させることができる。
【図1】 グループ分け終了時のデータの状態を示す
図。
図。
【図2】 ソート終了時のデータの状態を示す図。
【図3】 従来の直接選択ソート処理に要する処理量を
示す図。
示す図。
【図4】 本発明のソート処理に要する処理量を示す
図。
図。
【図5】 ソート対象データファイルのデータの傾向を
調査するための処理手順を示す図。
調査するための処理手順を示す図。
【図6】 グループ分けの際に使用される、配列Min
(n)とMax(n)の状態を示す図。
(n)とMax(n)の状態を示す図。
【図7】 グループ分けを行うアルゴリズムを示す図。
【図8】 グループ分けを行う処理手順を示す図。
Claims (3)
- 【請求項1】 ソート対象データのデータを、その範囲
ごとにいくつかのグループに入れ替えをし、次にそのグ
ループごとにソートを行うことにより、少ない処理時間
で全てのデータのソートを行うことを特徴とするソート
処理方法。 - 【請求項2】 グループ分けを行う際に、ソート対象デ
ータファイルの中だけでデータの入れ替えを行うことを
特徴とする請求項1記載のソート処理方法。 - 【請求項3】 グループ分けを行う際に、グループ分け
をなるべく均等に行う必要があるため、データファイル
によっては、データの傾向を調査するための処理を必要
とする、請求項1記載のソート処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000318619A JP2002091757A (ja) | 2000-09-11 | 2000-09-11 | ソート処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000318619A JP2002091757A (ja) | 2000-09-11 | 2000-09-11 | ソート処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002091757A true JP2002091757A (ja) | 2002-03-29 |
JP2002091757A5 JP2002091757A5 (ja) | 2004-07-08 |
Family
ID=18797213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000318619A Pending JP2002091757A (ja) | 2000-09-11 | 2000-09-11 | ソート処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002091757A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007179377A (ja) * | 2005-12-28 | 2007-07-12 | Nomura Research Institute Ltd | ランキング装置、ランキング方法、プログラム |
JP2012185791A (ja) * | 2011-03-03 | 2012-09-27 | Jun Hatta | ソート処理の高速化したプログラム |
JP2020123035A (ja) * | 2019-01-29 | 2020-08-13 | 富士通株式会社 | ソート方法、ソートプログラム及びソート装置 |
-
2000
- 2000-09-11 JP JP2000318619A patent/JP2002091757A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007179377A (ja) * | 2005-12-28 | 2007-07-12 | Nomura Research Institute Ltd | ランキング装置、ランキング方法、プログラム |
JP4749153B2 (ja) * | 2005-12-28 | 2011-08-17 | 株式会社野村総合研究所 | ランキング装置、プログラム |
JP2012185791A (ja) * | 2011-03-03 | 2012-09-27 | Jun Hatta | ソート処理の高速化したプログラム |
JP2020123035A (ja) * | 2019-01-29 | 2020-08-13 | 富士通株式会社 | ソート方法、ソートプログラム及びソート装置 |
JP7151515B2 (ja) | 2019-01-29 | 2022-10-12 | 富士通株式会社 | ソート方法、ソートプログラム及びソート装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897775A (zh) | 一种基于感知哈希的快速图像识别系统及方法 | |
CN102708183B (zh) | 数据压缩的方法和装置 | |
CN107679104B (zh) | 大表流式并行高速数据比对方法 | |
US6978458B1 (en) | Distributing data items to corresponding buckets for use in parallel operations | |
EP3955256A1 (en) | Non-redundant gene clustering method and system, and electronic device | |
US4862356A (en) | Method and device for sorting objects provided with a parameter, according to the value of this parameter | |
CN108804661A (zh) | 一种云存储系统中基于模糊聚类的重复数据删除方法 | |
Vulinović et al. | Neural networks for file fragment classification | |
CN113592174A (zh) | 一种基于知识驱动的二维多边形布片自动排料方法 | |
CN110097581B (zh) | 基于点云配准icp算法构建k-d树的方法 | |
JP2002091757A (ja) | ソート処理方法 | |
CN107562948A (zh) | 一种基于距离的无参数多维数据聚类方法 | |
CN109344875B (zh) | 基于聚类分析的日风电出力时序生成方法及装置 | |
JP2683947B2 (ja) | データ分類回路 | |
CN103500205B (zh) | 非均匀大数据分类方法 | |
CN107908555A (zh) | 一种sql脚本的异常检测方法及其终端 | |
CN114021977A (zh) | 一种面向储能规划的典型复合型场景缩减方法及系统 | |
CN110609832B (zh) | 一种面向流式数据的非重复采样方法 | |
CN108776707B (zh) | 针对探索性查询的抽样方法 | |
JPH0934862A (ja) | パターン学習方法および装置 | |
CN112435342A (zh) | 一种异型曲面的区域划分方法及系统 | |
CN112764935A (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
JPH04153764A (ja) | 分散cpuの処理高速化方式 | |
TWI858596B (zh) | 模型訓練方法及模型訓練裝置 | |
CN110704651A (zh) | 基于核心细节点支持系统的指纹数据库快速检索方法 |