JPH08221254A - マージソート方法及びマージソート装置 - Google Patents

マージソート方法及びマージソート装置

Info

Publication number
JPH08221254A
JPH08221254A JP2801395A JP2801395A JPH08221254A JP H08221254 A JPH08221254 A JP H08221254A JP 2801395 A JP2801395 A JP 2801395A JP 2801395 A JP2801395 A JP 2801395A JP H08221254 A JPH08221254 A JP H08221254A
Authority
JP
Japan
Prior art keywords
sort
data
merge
record
processing
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
JP2801395A
Other languages
English (en)
Other versions
JP3534471B2 (ja
Inventor
Katsutoshi Obara
勝利 小原
Shinichi Eguchi
真一 江口
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 JP2801395A priority Critical patent/JP3534471B2/ja
Publication of JPH08221254A publication Critical patent/JPH08221254A/ja
Application granted granted Critical
Publication of JP3534471B2 publication Critical patent/JP3534471B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 マージソート方法に関し、ソート処理の高速
化を目的とする。 【構成】 ソート対象のデータ列を検索してソート処理
不要な部分集合を抽出し、この部分集合をソート済み並
びとして併合する所定のマージ処理を行って、該データ
列をソートする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマージソート方法および
マージソート装置の改良に関する。データベースを作成
する場合にデータを昇順または降順に並べるとか、その
データベースに新たなデータが追加された場合に並べ替
えの必要性が生じた場合などにおいて、データのソート
(整列)処理が実施される。
【0002】そのソート方法の1つとして、データ列の
各データを交互に振り分けた後、それぞれソートしつつ
併合(マージ)していくマージソート方法が広く採用さ
れているが、データ量が多いとソート処理に時間がかか
る。
【0003】近年では、端末装置においても、業務処理
上のデータ検索時間の短縮が要望されているため、ソー
ト処理頻度が増加しつつあり、ソート処理の高速化が要
望されている。
【0004】
【従来の技術】図8は従来例のマージソート方法説明図
である。図8は、マージソート方法の1例を示したもの
で、例えば、レコードNOが0〜7までの8データをデ
ータの大きさの順(昇順)に並べ替える場合、先ず、レ
コードNO=0のデータとレコードNO=1のデータを
振り分けた後、併合(マージ)する。この併合の際、デ
ータの大きさの順に並べる。この結果図のに示すデー
タ列が得られる。
【0005】続いて、レコードNO=2のデータとレコ
ードNO=3のデータを振り分けた後マージすると、
のデータ列が得られる。このようにして、それぞれ2組
のデータがソートされたデータ列,,,が得ら
れる。
【0006】次のステップでデータ列とデータ列と
をマージすると、データ列が得られ、同様にしてデー
タ列,からデータ列が得られ、このデータ列と
とをマージすると1つのデータ列が得られる。この
データ列が、目的とする昇順にソートされたデータ列
となる。
【0007】なお、マージする場合の処理は、例えばデ
ータ列とデータ列とを例にとると次の通りである。
先ず、データ列の先頭(0002)とデータ列の先
頭(0001)とを比較する。(0001)の方が小さ
いから、このデータをバッファに格納する。次にデータ
列の(0002)とデータ列の(0006)とを比
較する。(0002)の方が小さいから、(0002)
をバッファ内の(0001)の次に格納する。次はデー
タ列の(0005)とデータ列の(0006)と比
較する。(0005)の方が小さいから、(0005)
をバッファの(0002)の次に格納する。ここで残り
の比較データがないから、(0006)を最後に格納す
る。
【0008】このように、2組のデータ列を整列済みの
並びごとに併合する手続きを繰り返すことにより、昇順
に整列された1つのデータ列が得られる。
【0009】
【発明が解決しようとする課題】端末装置における業務
処理等でデータベースが検索される場合が多いが、デー
タベースが昇順または降順のごとく、ある決められた順
にソートされていないと検索に時間がかかる。このた
め、データの追加などによってソートされていないデー
タが一定量に達すると、通常自動的にソート処理が実施
されるようになっており、その間オペレータは待たされ
る。
【0010】このソート処理には前述したマージソート
法等が採用されているが、近年ではハードディスクの容
量の増大によってデータ量が多くなっており、益々ソー
ト処理に時間を要している。
【0011】本発明は、上記課題に鑑み、ソート時間を
短縮するマージソート方法を提供することを目的とす
る。
【0012】
【課題を解決するための手段】上記課題を解決するた
め、本発明のマージソート方法は、図1本発明の原理図
に示すように、 (1) ソート対象のデータ列を検索してソート処理不要な
部分集合を抽出し、この部分集合をソート済み並びとし
て併合する所定のマージ処理を行って、該データ列をソ
ートする。 (2) 上記(1) を実現するマージソート処理装置として、
ソート処理対象のデータ列を検索してソート不要な部分
集合を抽出するソート不要部抽出処理部と、前記部分集
合を基準として所定のマージ処理を行うマージ処理部と
を備えるように構成する。
【0013】
【作用】
(1) 先ず、ソート対象のデータ列からソート処理不要な
一連のデータ列を部分集合(ソート不要部)として抽出
する。この部分集合を最初の整列済み並びとして、振り
分け、且つ併合する所定のマージ処理を遂行していく。
【0014】一般にソートする場合には、整列済みのデ
ータ列の部分が多いから、この集合をスタートとしてマ
ージソートを遂行すると、大幅にソート時間が短縮され
る。なお、この際、各部分集合の大きさは一定である必
要はない。 (2) 上記(1) を実現する装置において、ソート不要部抽
出処理部はソート対象のデータ列からソート処理不要な
一連のデータを部分集合として抽出し、マージ処理部
は、この部分集合を基準として所定のマージ処理を行
う。
【0015】以上のごとく、ソート不要な部分集合が大
きければ、従来例と比較して、最初の数段階のマージ処
理を省くことができ、ソート処理速度を大幅に短縮する
ことができる。
【0016】
【実施例】図2は一実施例の構成図、図3は基本動作フ
ローチャート図、図4はソート不要部分抽出処理フロー
チャート図、図5はソート不要部分抽出処理例を表す
図、図6はマージソート処理フローチャート図、図7は
マージソート処理例を表す図である。
【0017】本実施例では、具体的説明として、図8に
示す8レコード(レコードはデータの単位)のデータ列
に適用したものを示す。このレコード数はソート処理を
行うバッファ容量に制限されるもので、この部分の処理
はいわゆる内部ソートと称される。ソート対象のデータ
列がこのバッファ容量(ここでは8レコード)より大き
い場合、この8レコードをブロックとして、いわゆる外
部ソートを行う。
【0018】図2は、データ処理装置(端末装置)のう
ちのマージソート部分を示したものである。図2におい
て、1は中央処理ユニットCPUで、プログラムで構成
される下記各部を走行させ、本実施例のマージソート処
理の制御を行う。
【0019】2はマージソート制御部で、データ読込処
理部3,ソート不要部抽出処理部4,ソート不要部マー
ジ処理部5,データ書込処理部6より構成される。ここ
で、データ読込処理部3は、ファイル装置7よりソート
対象のデータ列のうちからバッファ容量に応じた数のデ
ータを順に読み出してバッファ9に格納するもの、ソー
ト不要部抽出処理部4は、バッファ9に格納されたデー
タをサーチし、ソート処理不要(ここでは昇順とする)
な連続したデータ列(ソート不要部)を抽出し、そのデ
ータ列の先頭レコードNOをソートインデックス10に保
存するもの、ソート不要部マージ処理部5は、ソートイ
ンデックス10を参照し、ソート不要部間のマージソート
処理を行うもの、データ書込処理部6は、ソート完了し
たレコードNOにデータを置換してファイル装置7に格
納するものである。
【0020】7はファイル装置で、ソート対象データが
格納されている。8はメモリで、マージソート処理を行
うためのバッファ9と、マージ処理を行うための後述す
るソートインデックス10などが含まれる。
【0021】ここで、ソートインデックス10はソート不
要部の先頭レコードNOがレコードNO順に格納された
もので、後述するが、図5にその生成過程を示してい
る。以下、次のようにしてマージソート処理が行われ
る。
【0022】〔基本動作〕図3参照 (1) ファイル装置7より読込まれたデータ列はソート不
要部抽出処理部4によってサーチされ、ソート不要部抽
出処理が行われる。この結果、ソート不要部の先頭レコ
ードNOのみを格納したソートインデックス10と、各ソ
ート不要部のレコードNO数が得られる。 (2) ソート不要部マージ処理部5によって各ソート不要
部間のマージ処理が行われる。この際レコードNOのみ
がソートされる。 (3) マージ処理が完了すると、ソートされたレコードN
Oが実データに置き換えられ、ファイル装置7に格納さ
れる。
【0023】以下、詳細な動作は以下の通りである。 〔ソート不要部抽出処理〕図4参照 前述した基本動作(1) に相当し、マージ処理の前処理と
して行われる。 (1) データ読込処理部3は、読み込み可能なレコード数
分(n) のデータをバッファ9に読み込む。 (2) ソートインデックス10の初期化を行う。ここで、バ
ッファ9に格納されたデータに対し、レコードNOとし
て0から7までを付与する。 (3) 先頭から順に隣り合うレコードを比較する。先ず、
m=0として(m)と(m+1)を比較する。ここで
(m)はレコードNO=mの内容を表す。 (4) (m)>(m+1)ならば、(m+1)のレコード
NOをソートインデックス10に保存する。この保存され
たレコードNOがソート不要部の先頭レコードとなる。
(m)≦(m+1)ならば、下記(6) に進む。 (5) ソートインデックス10に格納したレコードNO数を
計数する。 (6) m=m+1として、(3) から繰り返す。
【0024】以上により、図5に示すようなソートイン
デックス10が得られる。即ち、初期値としてm1=0
が保存され、次にレコードNO=2のデータとレコード
NO=3のデータとの比較でレコードNO=2までが
ソート不要部と判明するので、m1+1=m2=3が保
存され、レコードNO=5のところで同様にソート要
となるのでm3=5が保存される。そして、それぞれレ
コードNO数として、3(A群),2(B群),3(C
群)が計数される。
【0025】〔マージソート処理〕ソート不要部マージ
処理部5の処理で、前述した基本動作(1) のソート不要
部間のマージである。この際、ソートインデックス10と
前述したレコードNO数が使用される。ソートインデッ
クス10はマージ処理されるごとに併合され、最後はソー
トインデックス数は1 となる。
【0026】図3に示すように、先ず、ソートインデッ
クス数を検索する。本例では、図5に示すように、最初
はm1,m2,m3まであるからソートインデックス数
は3であるからマージ処理を行う。1ならばすべて整列
したことを表すからマージ処理を終了する。
【0027】ソートインデックス数>1ならば、ソート
インデックス10の先頭から2組づつデータ群を取り出し
て(図1ではAとB,CとD、図5ではAとB,C)、
それぞれマージ処理を行う。
【0028】以下1組(A群,B群)についてマージ処
理例を説明する。図6,図7参照 (1) ソートインデックス10を参照して、2つのデータ群
A,Bの先頭からレコードNOを1つづつ取り出す。 (2) そのレコードNOに対応する実データ(A),
(B)をバッファ9より抽出する。 (3) 抽出した実データを比較し、(A)≧(B)なら
ば、(B)をバッファ9に設けた出力バッファに格納す
る。 (4) 一方、(A)<(B)ならば、(A)を出力バッフ
ァに格納し、次にその(B)と次の(A)とを比較す
る。
【0029】上記(3) と(4) とが繰り返され、比較する
データが無くなると、残った側のデータを出力バッファ
に順に格納して終了する。この結果、A群とB群のレコ
ードNOが併合され、ソートインデックス10が更新され
る。この更新により、A,Bが併合されたソートインデ
ックス10が生成される。同時に対応するレコードNO数
も更新される。
【0030】以上により、先頭2組づつマージ処理を行
い、次にマージされたデータ2組づつのマージ処理を行
う。この結果、出力バッファには、最終的にソートされ
たレコードNOが得られるので、実データに置き換えら
れて、ファイル装置7に格納される。
【0031】図7で以上のことを説明すると次のように
なる。最初はA群とB群の比較であり、ステップ1の
の比較が行われる。このため、先ず、ソートインデック
ス10を参照して、A群,B群の先頭レコードNOとし
て、レコードNO=0,レコードNO=3を取り出す。
(A)=0002,(B)=0001であるから、
(A)≧(B)となって、(B)のレコードNO=3を
出力バッファに格納する。
【0032】続いてステップ1のの比較を行う。
(B)としてB群のうちから次のレコードNOのデータ
(0007)を抽出し、(A)=(0002)と比較す
る。この結果(A)のレコードNO=0が出力バッファ
に格納される。
【0033】このようにして、比較,が行われ、最
後に(0007)が残るから、このレコードNOを出力
バッファに格納する。そしてソートインデックス10の数
は2となり、図7に示した構成となる。
【0034】このA群とB群のマージが終了すると、ス
テップ2として、(A+B)とCとのマージ処理が前述
と同様に行われる。そしてソートインデックス10の数は
1となるからマージが終了する。
【0035】以上のごとく、ソート対象のデータ列をサ
ーチして、ソート不要部分を抽出し、この不要部分から
マージを開始することにより、データ単位からのマージ
処理を省くことができる。この結果、通常はソート不要
部分が大きいから、マージソート処理が大幅に高速化さ
れる。
【0036】なお、上記マージ処理の方法は1例であ
り、他のマージ処理方式に適用できることは勿論であ
る。
【0037】
【発明の効果】以上説明したように、本発明は、先ず、
ソート対象のデータ列をサーチして整列処理不要の一連
のデータ列を抽出し、このデータ列を部分集合としてマ
ージ処理を開始するようにしたので、最小データ単位か
らマージ処理を行う従来の方法と比較してマージ処理数
を大幅に省略することができ、処理速度が改善される効
果は極めて大きい。
【図面の簡単な説明】
【図1】 本発明の原理図
【図2】 一実施例の構成図
【図3】 基本動作フローチャート図
【図4】 ソート不要部分抽出処理フローチャート図
【図5】 ソート不要部分抽出処理例を表す図
【図6】 マージソート処理フローチャート図
【図7】 マージソート処理例を表す図
【図8】 従来例のマージソート方法説明図
【符号の説明】
1 中央処理ユニットCPU 2 マージソー
ト制御部 3 データ読込処理部 4 ソート不要
部抽出処理部 5 ソート不要部マージ処理部 6 データ書込
処理部 7 ファイル装置 8 メモリ 9 バッファ 10 ソートイン
デックス

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソート対象のデータ列を検索してソー
    ト処理不要な部分集合を抽出し、この部分集合をソート
    済み並びとして併合する所定のマージ処理を行って、該
    データ列をソートすることを特徴とするマージソート方
    法。
  2. 【請求項2】 ソート対象のデータ列を検索してソー
    ト処理不要な部分集合を抽出するソート不要部抽出処理
    部と、 前記部分集合を基準として所定のマージ処理を行うマー
    ジ処理部とを備えることを特徴とするマージソート処理
    装置。
JP2801395A 1995-02-16 1995-02-16 マージソート方法及びマージソート装置 Expired - Lifetime JP3534471B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2801395A JP3534471B2 (ja) 1995-02-16 1995-02-16 マージソート方法及びマージソート装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2801395A JP3534471B2 (ja) 1995-02-16 1995-02-16 マージソート方法及びマージソート装置

Publications (2)

Publication Number Publication Date
JPH08221254A true JPH08221254A (ja) 1996-08-30
JP3534471B2 JP3534471B2 (ja) 2004-06-07

Family

ID=12236898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2801395A Expired - Lifetime JP3534471B2 (ja) 1995-02-16 1995-02-16 マージソート方法及びマージソート装置

Country Status (1)

Country Link
JP (1) JP3534471B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064520A1 (ja) * 2003-12-26 2005-07-14 Toudai Tlo, Ltd. 配列探索システムおよび探索プログラム
JP2009199439A (ja) * 2008-02-22 2009-09-03 Nec Corp マージソート処理方法、マージソート処理装置、及びマージソート処理プログラム
JP2010230522A (ja) * 2009-03-27 2010-10-14 Aisin Aw Co Ltd ナビゲーション装置及びプログラム
WO2014178544A1 (ko) * 2013-04-29 2014-11-06 주식회사 실리콘아츠 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체
KR101465447B1 (ko) * 2014-03-31 2014-12-10 성균관대학교산학협력단 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064520A1 (ja) * 2003-12-26 2005-07-14 Toudai Tlo, Ltd. 配列探索システムおよび探索プログラム
JP2009199439A (ja) * 2008-02-22 2009-09-03 Nec Corp マージソート処理方法、マージソート処理装置、及びマージソート処理プログラム
JP2010230522A (ja) * 2009-03-27 2010-10-14 Aisin Aw Co Ltd ナビゲーション装置及びプログラム
WO2014178544A1 (ko) * 2013-04-29 2014-11-06 주식회사 실리콘아츠 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체
KR101482229B1 (ko) * 2013-04-29 2015-01-14 주식회사 실리콘아츠 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체
KR101465447B1 (ko) * 2014-03-31 2014-12-10 성균관대학교산학협력단 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템

Also Published As

Publication number Publication date
JP3534471B2 (ja) 2004-06-07

Similar Documents

Publication Publication Date Title
EP0510634B1 (en) Data base retrieval system
JP2607818B2 (ja) コンピュータシステム内にレコードが記憶されているか否かを判定する方法及び装置
JP2003044267A (ja) データソート方法、データソート装置およびデータソートプログラム
CN113901006A (zh) 大规模基因测序数据存储与查询系统
CN108804204A (zh) 多线程并行构造后缀数组的方法及系统
JP3534471B2 (ja) マージソート方法及びマージソート装置
JPH0869476A (ja) 検索システム
JP4208326B2 (ja) 情報索引装置
JP3370787B2 (ja) 文字配列検索方法
JPH05257982A (ja) 文字列認識方法
JP2786380B2 (ja) キーワード照合検索処理方法
CN109299260B (zh) 数据分类方法、装置以及计算机可读存储介质
JP4181723B2 (ja) 索引作成装置、索引作成方法および記録媒体
CN107451125B (zh) 一种针对顺序无关项组进行快速相近语义匹配的方法
CN105553483A (zh) 一种产生lz77的方法及装置
CN1041050A (zh) 联机手写字符识别装置
JPH05135102A (ja) 文書検索方式
JP3115459B2 (ja) 文字認識辞書の構成方法及び検索方法
JP2540899B2 (ja) ソ―タ記憶管理方式
JPH0795337B2 (ja) 単語認識方式
JP3104893B2 (ja) 情報検索方式
JPH07319888A (ja) 索引検索方式
JP2535655B2 (ja) 辞書検索方式
JP3780772B2 (ja) データベースの索引創成装置
JPH06274701A (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: 20040217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040309

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)

Free format text: PAYMENT UNTIL: 20080319

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100319

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100319

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 10

EXPY Cancellation because of completion of term