JPH058450B2 - - Google Patents
Info
- Publication number
- JPH058450B2 JPH058450B2 JP60119231A JP11923185A JPH058450B2 JP H058450 B2 JPH058450 B2 JP H058450B2 JP 60119231 A JP60119231 A JP 60119231A JP 11923185 A JP11923185 A JP 11923185A JP H058450 B2 JPH058450 B2 JP H058450B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- start position
- search
- search start
- holding means
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 13
- 101100438536 Nicotiana plumbaginifolia CABC gene Proteins 0.000 description 12
- 230000001174 ascending effect Effects 0.000 description 9
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の詳細な説明】
発明の目的
産業上の利用分野
本発明は、電子計算機システムなどで利用され
るデータのソート方式に関するものである。
るデータのソート方式に関するものである。
従来の技術
電子計算機システムなどでは、処理対象のデー
タを所定の順序に配列し直すソート処理を行う場
合がある。
タを所定の順序に配列し直すソート処理を行う場
合がある。
データ構造に特別の制限がないようなデータを
そのソートキーに従い昇順あるいは降順に配列し
直す場合、通常、ソートキー順にデータ配列位置
の連鎖リストを作成する方式が採られている。
そのソートキーに従い昇順あるいは降順に配列し
直す場合、通常、ソートキー順にデータ配列位置
の連鎖リストを作成する方式が採られている。
従来、論理の単純さと処理の容易さから、ソー
ト対象のデータを順次入力し、新たに入力された
データのソートキーと、連鎖リスト中の既存の全
データのソートキーとを連鎖リストの先頭位置か
ら順次比較して新たなデータの挿入位置を決定
し、ここに新たなデータが追加されるように連鎖
リストの更新を行つていた。
ト対象のデータを順次入力し、新たに入力された
データのソートキーと、連鎖リスト中の既存の全
データのソートキーとを連鎖リストの先頭位置か
ら順次比較して新たなデータの挿入位置を決定
し、ここに新たなデータが追加されるように連鎖
リストの更新を行つていた。
発明が解決しようとする問題点
上記従来のソート方式では、ソート対象のデー
タの個数が増加するにつれて、探索時のソートキ
ーどうしの比較回数が急増し、ソート時間に要す
る時間が急増するという問題がある。
タの個数が増加するにつれて、探索時のソートキ
ーどうしの比較回数が急増し、ソート時間に要す
る時間が急増するという問題がある。
発明の構成
問題点を解決するための手段
上記従来技術の問題点を解決する本発明のソー
ト方式は、作成中の連鎖リストを保持する連鎖リ
スト保持手段と、探索が開始される連鎖リスト上
の位置情報を保持する探索開始位置保持手段と、
各データのソートキーと上記探索開始位置保持手
段に保持されている探索開始位置のデータのソー
トキーとを比較して探索開始位置を決定する探索
開始位置決定手段と、この探索開始位置決定手段
によつて決定された探索開始位置から探索を開始
する探索手段と、この探索手段の探索結果に従つ
て前記連鎖リスト保持手段に保持されている連鎖
リストを更新する連鎖リスト更新手段と、上記探
索手段による1データ当たりの比較回数が所定値
に達するたびに、比較対象となつたデータの連鎖
リスト上の位置情報を上記探索開始位置保持手段
に追加する探索開始位置設定手段とを備えるよう
に構成されている。
ト方式は、作成中の連鎖リストを保持する連鎖リ
スト保持手段と、探索が開始される連鎖リスト上
の位置情報を保持する探索開始位置保持手段と、
各データのソートキーと上記探索開始位置保持手
段に保持されている探索開始位置のデータのソー
トキーとを比較して探索開始位置を決定する探索
開始位置決定手段と、この探索開始位置決定手段
によつて決定された探索開始位置から探索を開始
する探索手段と、この探索手段の探索結果に従つ
て前記連鎖リスト保持手段に保持されている連鎖
リストを更新する連鎖リスト更新手段と、上記探
索手段による1データ当たりの比較回数が所定値
に達するたびに、比較対象となつたデータの連鎖
リスト上の位置情報を上記探索開始位置保持手段
に追加する探索開始位置設定手段とを備えるよう
に構成されている。
すなわち、本発明のソート方式は、探索と並行
して連鎖リスト上に所定周期の探索開始位置を設
定してゆき、常に連鎖リストの先頭から探索を行
うのではなく、まず少ない比較回数で探索開始位
置を決定し、決定した探索開始位置の先頭(一般
には連鎖リストの途中)から従来方式と同様の最
終探索を開始するという、2段構えの連鎖探索を
行うことにより、探索時のソートキーどうしの比
較回数を大幅に圧縮し、これによつてソート時間
を大幅に短縮するように構成されている。
して連鎖リスト上に所定周期の探索開始位置を設
定してゆき、常に連鎖リストの先頭から探索を行
うのではなく、まず少ない比較回数で探索開始位
置を決定し、決定した探索開始位置の先頭(一般
には連鎖リストの途中)から従来方式と同様の最
終探索を開始するという、2段構えの連鎖探索を
行うことにより、探索時のソートキーどうしの比
較回数を大幅に圧縮し、これによつてソート時間
を大幅に短縮するように構成されている。
以下、本発明の作用を実施例と共に詳細に説明
する。
する。
実施例
第1図の機能ブロツク図を参照すれば、本発明
の一実施例は、データ入力手段1、探索開始位置
決定手段2、探索手段3、探索開始位置設定手段
4、連鎖リスト更新手段5、探索開始位置保持手
段6、連鎖リスト保持手段7及び新データ保持手
段8を備えている。第1図中、矢印を付した太線
と細線は、それぞれ情報と制御の流れとその方向
を示している。
の一実施例は、データ入力手段1、探索開始位置
決定手段2、探索手段3、探索開始位置設定手段
4、連鎖リスト更新手段5、探索開始位置保持手
段6、連鎖リスト保持手段7及び新データ保持手
段8を備えている。第1図中、矢印を付した太線
と細線は、それぞれ情報と制御の流れとその方向
を示している。
データ入力手段1は、保持しているソート対象
のデータを1個ずつ新データ保持手段8に設定
し、設定のつど探索開始位置決定手段2に制御を
渡す。
のデータを1個ずつ新データ保持手段8に設定
し、設定のつど探索開始位置決定手段2に制御を
渡す。
探索開始位置決定手段2は、データ入力手段1
から制御を渡されるたびに、探索開始位置保持手
段6に保持されている探索開始位置を読出し、探
索開始位置が複数存在する場合には、この探索開
始位置のデータのソートキーを連鎖リスト保持手
段7から読出して新データ保持手段8内の新デー
タのソートキーと順次比較することにより、探索
開始位置を決定し、この決定位置と制御を探索手
段3に渡す。
から制御を渡されるたびに、探索開始位置保持手
段6に保持されている探索開始位置を読出し、探
索開始位置が複数存在する場合には、この探索開
始位置のデータのソートキーを連鎖リスト保持手
段7から読出して新データ保持手段8内の新デー
タのソートキーと順次比較することにより、探索
開始位置を決定し、この決定位置と制御を探索手
段3に渡す。
探索手段3は、探索開始位置決定手段3から通
知された探索開始位置から、連鎖リスト保持手段
7内に保持されている連鎖をたどつて各データの
ソートキーを順次読出し、これを新データ保持手
段8内の新データのソートキーと比較するという
探索を行うことにより新データの連鎖リストへの
追加位置を決定するという探索処理を行う。探索
手段3は、探索を終了すると探索結果と制御を連
鎖リスト更新手段5に渡す。
知された探索開始位置から、連鎖リスト保持手段
7内に保持されている連鎖をたどつて各データの
ソートキーを順次読出し、これを新データ保持手
段8内の新データのソートキーと比較するという
探索を行うことにより新データの連鎖リストへの
追加位置を決定するという探索処理を行う。探索
手段3は、探索を終了すると探索結果と制御を連
鎖リスト更新手段5に渡す。
連鎖リスト更新手段5は、連鎖リスト保持手段
7内の連鎖リストを更新することにより、上記探
索結果の挿入位置に新データを追加する。連鎖リ
スト更新手段は、更新を終了すると制御をデータ
入力手段に渡す。
7内の連鎖リストを更新することにより、上記探
索結果の挿入位置に新データを追加する。連鎖リ
スト更新手段は、更新を終了すると制御をデータ
入力手段に渡す。
制御を渡されたデータ入力手段は、新データ入
力手段8の内容を次のデータで更新した後、探索
開始位置決定手段2に制御を渡す。以下、同様に
して個々のデータに対するソートが継続される。
力手段8の内容を次のデータで更新した後、探索
開始位置決定手段2に制御を渡す。以下、同様に
して個々のデータに対するソートが継続される。
このようなソートの過程において、探索手段3
は、探索に伴うソートキーどうしの比較回数が所
定値になると、そのときの比較対象となつたデー
タの連鎖リスト上の位置情報と制御を探索開始位
置設定手段4に渡す。
は、探索に伴うソートキーどうしの比較回数が所
定値になると、そのときの比較対象となつたデー
タの連鎖リスト上の位置情報と制御を探索開始位
置設定手段4に渡す。
探索開始位置設定手段4は、探索手段3から受
けた位置情報を探索開始位置保持手段6に追加す
る。
けた位置情報を探索開始位置保持手段6に追加す
る。
ただし、ソートの開始直後には、探索開始位置
保持手段6と連鎖リスト保持手段7内容は空白の
状態にあるので、最初のデータについては上述の
ものと異なつた処理が行われる。
保持手段6と連鎖リスト保持手段7内容は空白の
状態にあるので、最初のデータについては上述の
ものと異なつた処理が行われる。
すなわち、最初のデータについては、探索開始
位置決定手段2、探索手段3及び連鎖リスト更新
手段5は、なんらの決定も探索も行うことなく無
条件に、その最初のデータを連鎖リスト保持手段
7内の連鎖リストの先頭に置くと共に、この連鎖
リストの先頭位置を探索開始位置保持手段6に保
持させる。
位置決定手段2、探索手段3及び連鎖リスト更新
手段5は、なんらの決定も探索も行うことなく無
条件に、その最初のデータを連鎖リスト保持手段
7内の連鎖リストの先頭に置くと共に、この連鎖
リストの先頭位置を探索開始位置保持手段6に保
持させる。
探索開始位置保持手段6内に保持される探索開
始位置は、ソートの進行と共に増加してゆく。探
索開始位置決定手段2は、探索開始位置保持手段
6に複数の探索開始位置が保持されている場合に
は、新データのソートキーと、各探索開始位置の
データのソートキーを連鎖リストの方向に沿つて
次々に比較してゆき、最初に昇順の関係が崩れた
探索開始位置の一つ前の探索開始位置を探索開始
位置に決定し、これを探索手段3に渡す。
始位置は、ソートの進行と共に増加してゆく。探
索開始位置決定手段2は、探索開始位置保持手段
6に複数の探索開始位置が保持されている場合に
は、新データのソートキーと、各探索開始位置の
データのソートキーを連鎖リストの方向に沿つて
次々に比較してゆき、最初に昇順の関係が崩れた
探索開始位置の一つ前の探索開始位置を探索開始
位置に決定し、これを探索手段3に渡す。
ただし、探索開始位置決定手段2、最後の探索
開始位置のデータのソートキーとの比較によつて
も上記昇順の関係が崩れない場合には、その最後
の探索開始位置を探索開始位置として選択する。
開始位置のデータのソートキーとの比較によつて
も上記昇順の関係が崩れない場合には、その最後
の探索開始位置を探索開始位置として選択する。
また、探索開始位置保持手段6内に唯一の探索
開始位置だけが保持されている間は、その唯一の
探索開始位置が探索開始位置として決定される。
開始位置だけが保持されている間は、その唯一の
探索開始位置が探索開始位置として決定される。
以下、具体的な一例を挙げて、上述の説明を補
足する。
足する。
第2図に例示するようなアルフアベツトの組合
せから成る英文字がソート対象の個々のデータで
あり、これらが図中の番号1,2,3…10で示
す順序で入力されるものとする。個々のデータの
ソートキーは、先頭の2個のアルフアベツトであ
り、これがA、B、C…Zのいわゆるアルフアベ
ツト順になるように個々のデータがソートされる
ものとする。
せから成る英文字がソート対象の個々のデータで
あり、これらが図中の番号1,2,3…10で示
す順序で入力されるものとする。個々のデータの
ソートキーは、先頭の2個のアルフアベツトであ
り、これがA、B、C…Zのいわゆるアルフアベ
ツト順になるように個々のデータがソートされる
ものとする。
また、探索開始位置は、連鎖リスト上の位置で
4飛びに、すなわち1、5、9、13…の位置に設
定されるものとする。
4飛びに、すなわち1、5、9、13…の位置に設
定されるものとする。
第3図の右側に示すように、最初のデータ
「YABC」が新データ保持手段8に保持された時
点においては、探索開始位置保持手段6と連鎖リ
スト保持手段7の内容はいずれも空である。
「YABC」が新データ保持手段8に保持された時
点においては、探索開始位置保持手段6と連鎖リ
スト保持手段7の内容はいずれも空である。
この最初のデータは、第3図の左側に示すよう
に、無条件に連鎖リスト保持手段7内の連鎖リス
トの先頭に置かれると共に、この最初のデータ
「YABC」の連鎖リスト上の格納位置が探索開始
位置保持手段6内に保持される。連鎖リスト保持
手段7内に格納されたデータには、次のデータの
格納位置を指示するネクスト・ポインタが付加さ
れる。最初のデータの格納直後においては、その
ネクスト・ポインタは空である。
に、無条件に連鎖リスト保持手段7内の連鎖リス
トの先頭に置かれると共に、この最初のデータ
「YABC」の連鎖リスト上の格納位置が探索開始
位置保持手段6内に保持される。連鎖リスト保持
手段7内に格納されたデータには、次のデータの
格納位置を指示するネクスト・ポインタが付加さ
れる。最初のデータの格納直後においては、その
ネクスト・ポインタは空である。
次に、第4図の左側に示すように、2番目のデ
ータ「BABC」が新データ保持手段8に保持さ
れる。探索開始位置決定手段2は、探索開始位置
保持手段6に保持されている探索開始位置が一つ
だけであるため、一つだけ保持されているデータ
「YABC」の連鎖リスト上の位置を探索開始位置
に決定する。
ータ「BABC」が新データ保持手段8に保持さ
れる。探索開始位置決定手段2は、探索開始位置
保持手段6に保持されている探索開始位置が一つ
だけであるため、一つだけ保持されているデータ
「YABC」の連鎖リスト上の位置を探索開始位置
に決定する。
探索手段3は、上記探索開始位置からデータ
「YABC」のソートキー「YA」を読出して、新
データ「BABC」のソートキー「BA」と比較
し、新データを連鎖リスト上のデータ「YABC」
の直前に配列すべきことを決定する。
「YABC」のソートキー「YA」を読出して、新
データ「BABC」のソートキー「BA」と比較
し、新データを連鎖リスト上のデータ「YABC」
の直前に配列すべきことを決定する。
連鎖リスト更新手段5と探索開始位置設定手段
4は、上記決定に従い、第4図の右側に示すよう
に、連鎖リスト保持手段7の内容と探索開始位置
保持手段6の内容を更新する。すなわち、探索開
始位置保持手段6には、データ「YABC」に代
えてデータ「BABC」の格納位置が設定され、
データ「BABC」のネクスト・ポインタとして
データ「YABC」の格納位置が書込まれる。
4は、上記決定に従い、第4図の右側に示すよう
に、連鎖リスト保持手段7の内容と探索開始位置
保持手段6の内容を更新する。すなわち、探索開
始位置保持手段6には、データ「YABC」に代
えてデータ「BABC」の格納位置が設定され、
データ「BABC」のネクスト・ポインタとして
データ「YABC」の格納位置が書込まれる。
引き続き、第5図の左側に示すように、3番目
のデータ「CABC」が新データ保持手段8に保持
される。探索開始位置決定手段2は、探索開始位
置保持手段6に保持されている探索開始位置が依
然として一つだけであるため、一つだけ保持され
ているデータ「BABC」の連鎖リスト上の位置
を探索開始位置に決定する。
のデータ「CABC」が新データ保持手段8に保持
される。探索開始位置決定手段2は、探索開始位
置保持手段6に保持されている探索開始位置が依
然として一つだけであるため、一つだけ保持され
ているデータ「BABC」の連鎖リスト上の位置
を探索開始位置に決定する。
探索手段3は、上記探索開始位置からデータ
「BABC」のソートキー「BA」を読出して、新
データ「CABC」のソートキー「CA」と比較し、
新データをデータ「BABC」の後に配列すべき
ことを判定する。次に、探索手段3は、データ
「BABC」のネクスト・ポインタによつて指定さ
れている格納位置からデータ「YABC」のソー
トキー「YA」を読出し、これと新データ
「CABC」のソートキー「CA」とを比較し、新デ
ータをデータ「YABC」の直前に配列すべきこ
とを判定する。すなわち、探索手段3は、ソート
キーどうしの比較を2回行うことにより、新デー
タ「CABC」の挿入位置がデータ「BABC」と
「YABC」の間であることを決定する。
「BABC」のソートキー「BA」を読出して、新
データ「CABC」のソートキー「CA」と比較し、
新データをデータ「BABC」の後に配列すべき
ことを判定する。次に、探索手段3は、データ
「BABC」のネクスト・ポインタによつて指定さ
れている格納位置からデータ「YABC」のソー
トキー「YA」を読出し、これと新データ
「CABC」のソートキー「CA」とを比較し、新デ
ータをデータ「YABC」の直前に配列すべきこ
とを判定する。すなわち、探索手段3は、ソート
キーどうしの比較を2回行うことにより、新デー
タ「CABC」の挿入位置がデータ「BABC」と
「YABC」の間であることを決定する。
連鎖リスト更新手段5は、上記の決定に従い、
第5図の右側に示すように、連鎖リスト保持手段
7の内容を更新する。
第5図の右側に示すように、連鎖リスト保持手段
7の内容を更新する。
第5図の右側に示す状態で、4番目のデータ
「ZA」が新データ保持手段8に保持されると、探
索開始位置決定手段2は、探索開始位置保持手段
6に保持されている探索開始位置が依然として一
つだけであるため、一つだけ保持されているデー
タ「BABC」の連鎖リスト上の位置を探索開始
位置に決定する。
「ZA」が新データ保持手段8に保持されると、探
索開始位置決定手段2は、探索開始位置保持手段
6に保持されている探索開始位置が依然として一
つだけであるため、一つだけ保持されているデー
タ「BABC」の連鎖リスト上の位置を探索開始
位置に決定する。
探索手段3は、上記探索開始位置からデータ
「BABC」のソートキー「BA」を読出して、新
データ「ZA」のソートキー「ZA」と比較し、新
データをデータ「BABC」の後に配列すべきこ
とを判定する。
「BABC」のソートキー「BA」を読出して、新
データ「ZA」のソートキー「ZA」と比較し、新
データをデータ「BABC」の後に配列すべきこ
とを判定する。
次に、探索手段3は、データ「BABC」のネ
クスト・ポインタによつて指定されている格納位
置からデータ「CABC」のソートキー「CA」を
読出して新データ「ZA」のソートキー「ZA」と
比較し、新データをデータ「CABC」の後に配列
すべきことを判定する。次のデータ「YABC」
についても同様の判定が行われる。すなわち、探
索手段3は、ソートキーどうしの比較を3回行う
ことにより、新データ「ZA」の連鎖リストへの
追加位置がデータ「YABC」の直後であること
を決定する。
クスト・ポインタによつて指定されている格納位
置からデータ「CABC」のソートキー「CA」を
読出して新データ「ZA」のソートキー「ZA」と
比較し、新データをデータ「CABC」の後に配列
すべきことを判定する。次のデータ「YABC」
についても同様の判定が行われる。すなわち、探
索手段3は、ソートキーどうしの比較を3回行う
ことにより、新データ「ZA」の連鎖リストへの
追加位置がデータ「YABC」の直後であること
を決定する。
連鎖リスト更新手段5は、上記の決定に従い、
第6図に示すように、連鎖リスト保持手段7の内
容を更新する。なお、以下では、追加挿入された
ばかりの新データに*印を付して図示する。
第6図に示すように、連鎖リスト保持手段7の内
容を更新する。なお、以下では、追加挿入された
ばかりの新データに*印を付して図示する。
第6図に示す状態で、5番目のデータ
「NABCD」が新データ保持手段8に保持される
と、探索開始位置決定手段2は、探索開始位置保
持手段6に一つだけ保持されているデータ
「BABC」の連鎖リスト上の位置を探索開始位置
に決定する。
「NABCD」が新データ保持手段8に保持される
と、探索開始位置決定手段2は、探索開始位置保
持手段6に一つだけ保持されているデータ
「BABC」の連鎖リスト上の位置を探索開始位置
に決定する。
探索手段3は、上記探索開始位置からデータ
「BABC」、「CABC」、「YABC」のソートキーを
読出して新データのソートキー「NA」と比較す
る動作を3回繰り返すことにより、新データの挿
入位置をデータ「CABC」とデータ「CABC」と
データ「YABC」の間に決定する。
「BABC」、「CABC」、「YABC」のソートキーを
読出して新データのソートキー「NA」と比較す
る動作を3回繰り返すことにより、新データの挿
入位置をデータ「CABC」とデータ「CABC」と
データ「YABC」の間に決定する。
連鎖リスト更新手段5は、上記の決定に従い、
第7図に示すように、連鎖リスト保持手段7の内
容を更新する。
第7図に示すように、連鎖リスト保持手段7の内
容を更新する。
第7図に示す状態で、6番目のデータ
「EABCDEFG」が新データ保持手段8に保持さ
れると、探索開始位置決定手段2は、探索開始位
置保持手段6に一つだけ保持されているデータ
「BABC」の連鎖リスト上の位置を探索開始位置
に決定する。
「EABCDEFG」が新データ保持手段8に保持さ
れると、探索開始位置決定手段2は、探索開始位
置保持手段6に一つだけ保持されているデータ
「BABC」の連鎖リスト上の位置を探索開始位置
に決定する。
探索手段3は、上記探索開始位置からデータ
「BABC」、「CABC」及び「NABC」のソートキ
ーを読出して新データのソートキー「EA」と比
較する動作を3回繰り返すことにより、新データ
「EABCDEFG」の挿入位置をデータ「CABC」
とデータ「NABCD」の間に決定する。
「BABC」、「CABC」及び「NABC」のソートキ
ーを読出して新データのソートキー「EA」と比
較する動作を3回繰り返すことにより、新データ
「EABCDEFG」の挿入位置をデータ「CABC」
とデータ「NABCD」の間に決定する。
連鎖リスト更新手段5は、上記の決定に従い、
第8図に示すように、連鎖リスト保持手段7の内
容を更新する。
第8図に示すように、連鎖リスト保持手段7の内
容を更新する。
第8図に示す状態で、7番目のデータ「FAB」
が新データ保持手段8に保持されると、探索開始
位置決定手段2は、探索開始位置保持手段6に一
つだけ保持されているデータ「BABC」の連鎖
リスト上の位置を探索開始位置に決定する。
が新データ保持手段8に保持されると、探索開始
位置決定手段2は、探索開始位置保持手段6に一
つだけ保持されているデータ「BABC」の連鎖
リスト上の位置を探索開始位置に決定する。
探索手段3は、上記探索開始位置からデータ
「BABC」、「CABC」、「EABCDEFG」及び
「NABCD」のソートキーを読出して新データの
ソートキー「FA」と比較する動作を4回繰り返
すことにより、新データの挿入位置をデータ
「EABCDEFG」とデータ「NABCD」の間に決
定する。
「BABC」、「CABC」、「EABCDEFG」及び
「NABCD」のソートキーを読出して新データの
ソートキー「FA」と比較する動作を4回繰り返
すことにより、新データの挿入位置をデータ
「EABCDEFG」とデータ「NABCD」の間に決
定する。
連鎖リスト更新手段5は、上記の決定に従い、
第9図に示すように、連鎖リスト保持手段7の内
容を更新する。
第9図に示すように、連鎖リスト保持手段7の内
容を更新する。
探索手段3は、上記探索動作においてソートキ
ーどうしの比較回数が4に達したため、4回目の
比較対象となつた2個のデータ「FAB」と
「NABCD」のうち、後方に配列されたデータ
「NABCD」の連鎖リスト上の配置を探索開始位
置保持手段6に追加して保持させるよう、探索開
始位置設定手段4に指令する。探索開始位置設定
手段4は、上記指令に従い、第9図の**印で示
すような探索開始位置を追加する。
ーどうしの比較回数が4に達したため、4回目の
比較対象となつた2個のデータ「FAB」と
「NABCD」のうち、後方に配列されたデータ
「NABCD」の連鎖リスト上の配置を探索開始位
置保持手段6に追加して保持させるよう、探索開
始位置設定手段4に指令する。探索開始位置設定
手段4は、上記指令に従い、第9図の**印で示
すような探索開始位置を追加する。
第9図に示す状態で、8番目のデータ
「XABCD」が新データ保持手段8に保持される
と、探索開始位置決定手段2は、探索開始位置保
持手段6に保持されている2個の探索開始位置で
指定されているデータ「BABC」と「NABC」
のソートキー「BA」と「NA」を連鎖リスト保
持手段7から読出し、新データのソートキー
「XA」と比較する動作を「BA」、「NA」の順に
行う。探索開始位置決定手段2は、探索開始位置
保持手段6に保持されている最後の探索開始位置
のデータ「NABC」のソートキー「NA」との比
較によつても昇順の関係が崩れないので、この最
後の探索開始位置を探索開始位置として決定す
る。
「XABCD」が新データ保持手段8に保持される
と、探索開始位置決定手段2は、探索開始位置保
持手段6に保持されている2個の探索開始位置で
指定されているデータ「BABC」と「NABC」
のソートキー「BA」と「NA」を連鎖リスト保
持手段7から読出し、新データのソートキー
「XA」と比較する動作を「BA」、「NA」の順に
行う。探索開始位置決定手段2は、探索開始位置
保持手段6に保持されている最後の探索開始位置
のデータ「NABC」のソートキー「NA」との比
較によつても昇順の関係が崩れないので、この最
後の探索開始位置を探索開始位置として決定す
る。
探索手段3は上記決定に従い、新データのソー
トキー「XA」をデータ「NABC」と「YABC」
のソートキーとの比較を行うことにより、これら
のデータの間に新データの挿入位置を決定する。
トキー「XA」をデータ「NABC」と「YABC」
のソートキーとの比較を行うことにより、これら
のデータの間に新データの挿入位置を決定する。
連鎖リスト更新手段5は、上記の決定に従い、
第10図に示すように、連鎖リスト保持手段7の
内容を更新する。
第10図に示すように、連鎖リスト保持手段7の
内容を更新する。
第10図に示す状態で、9番目のデータ「PA」
が新データ保持手段8に保持されると、探索開始
位置決定手段2は、探索開始位置保持手段6に保
持されている2個の探索開始位置で指定されてい
るデータ「BABC」と「NABC」のソートキー
「BA」と「NA」を連鎖リスト保持手段7から読
出し、新データのソートキー「PA」と比較する
動作を「BA」、「NA」の順に行う。探索開始位
置決定手段2は、探索開始位置保持手段6に保持
されている最後の探索開始位置のデータ
「NABC」のソートキー「NA」との比較によつ
ても昇順の関係が崩れないので、この最後の探索
開始位置を探索開始位置として決定する。
が新データ保持手段8に保持されると、探索開始
位置決定手段2は、探索開始位置保持手段6に保
持されている2個の探索開始位置で指定されてい
るデータ「BABC」と「NABC」のソートキー
「BA」と「NA」を連鎖リスト保持手段7から読
出し、新データのソートキー「PA」と比較する
動作を「BA」、「NA」の順に行う。探索開始位
置決定手段2は、探索開始位置保持手段6に保持
されている最後の探索開始位置のデータ
「NABC」のソートキー「NA」との比較によつ
ても昇順の関係が崩れないので、この最後の探索
開始位置を探索開始位置として決定する。
探索手段3は上記決定に従い、新データのソー
トキー「PA」をデータ「NABC」と「XABCD」
のソートキーとの比較を行うことにより、これら
のデータの間に新データの挿入位置を決定する。
トキー「PA」をデータ「NABC」と「XABCD」
のソートキーとの比較を行うことにより、これら
のデータの間に新データの挿入位置を決定する。
連鎖リスト更新手段5は、上記の決定に従い、
第11図に示すように、連鎖リスト保持手段7の
内容を更新する。
第11図に示すように、連鎖リスト保持手段7の
内容を更新する。
第11図に示す状態で、10番目のデータ
「OABC」が新データ保持手段8に保持される
と、探索開始位置決定手段2は、探索開始位置保
持手段6に保持されている2個の探索開始位置で
指定されているデータのソートキーを連鎖リスト
保持手段7から読出し、新データのソートキー
「OA」と比較する。探索開始位置決定手段2は、
探索開始位置保持手段6に保持されている最後の
探索開始位置のデータ「NABC」のソートキー
「NA」との比較によつても昇順の関係が崩れな
いので、この最後の探索開始位置を探索開始位置
として決定する。
「OABC」が新データ保持手段8に保持される
と、探索開始位置決定手段2は、探索開始位置保
持手段6に保持されている2個の探索開始位置で
指定されているデータのソートキーを連鎖リスト
保持手段7から読出し、新データのソートキー
「OA」と比較する。探索開始位置決定手段2は、
探索開始位置保持手段6に保持されている最後の
探索開始位置のデータ「NABC」のソートキー
「NA」との比較によつても昇順の関係が崩れな
いので、この最後の探索開始位置を探索開始位置
として決定する。
探索手段3は上記決定に従い、新データのソー
トキー「OA」をデータ「NABC」と「PA」の
ソートキーとの比較を行うことにより、これらの
データ間に新データの挿入位置を決定し、連鎖リ
スト更新手段5は、この決定に従い第12図に示
すように、連鎖リスト保持手段7の内容を更新す
る。
トキー「OA」をデータ「NABC」と「PA」の
ソートキーとの比較を行うことにより、これらの
データ間に新データの挿入位置を決定し、連鎖リ
スト更新手段5は、この決定に従い第12図に示
すように、連鎖リスト保持手段7の内容を更新す
る。
説明の便宜上、ソート対象のデータが10個だけ
の場合を例示したが、データの個数が数十、数百
と増加するにつれて、探索開始位置保持手段6に
保持される探索開始位置情報は、第13図に概念
的に例示するように、連鎖リスト上の位置を4飛
びに指してゆくことになる。
の場合を例示したが、データの個数が数十、数百
と増加するにつれて、探索開始位置保持手段6に
保持される探索開始位置情報は、第13図に概念
的に例示するように、連鎖リスト上の位置を4飛
びに指してゆくことになる。
第13図に例示するように、探索開始位置保持
手段6に保持される探索開始位置が連鎖リスト内
の13番目の位置まで増加したのち、連鎖リスト内
の5番目と9番目の位置の間に挿入されるべき新
データが新データ保持手段8に保持されたものと
する。この場合、新データのソートキーを連鎖リ
スト内の9番目の位置に設定されている探索開始
位置のデータのソートキーと比較した時に最初に
昇順の関係が崩れることになる。このときには、
最初に昇順の関係が崩れた探索開始位置の一つ手
前の探索開始位置、すなわち連鎖リスト内の5番
目の位置に設定されている探索開始位置がその新
データについての探索開始位置として決定され
る。
手段6に保持される探索開始位置が連鎖リスト内
の13番目の位置まで増加したのち、連鎖リスト内
の5番目と9番目の位置の間に挿入されるべき新
データが新データ保持手段8に保持されたものと
する。この場合、新データのソートキーを連鎖リ
スト内の9番目の位置に設定されている探索開始
位置のデータのソートキーと比較した時に最初に
昇順の関係が崩れることになる。このときには、
最初に昇順の関係が崩れた探索開始位置の一つ手
前の探索開始位置、すなわち連鎖リスト内の5番
目の位置に設定されている探索開始位置がその新
データについての探索開始位置として決定され
る。
探索開始位置を4飛び周期で設定する構成を例
示したが、ソート対象のデータ個数の多少に応じ
て、適宜な周期を随意に設定できる。
示したが、ソート対象のデータ個数の多少に応じ
て、適宜な周期を随意に設定できる。
また、ソートキーの昇順に探索を行う場合を例
示したが、降順に探索を行う構成としてもよい。
示したが、降順に探索を行う構成としてもよい。
発明の効果
以上詳細に説明したように、本発明のソート方
式は、探索と並行して連鎖リスト上に所定周期の
探索開始位置を設定してゆき、常に連鎖リストの
先頭から探索を行うのではなく、まず少ない比較
回数で探索開始位置を決定し、決定した探索開始
位置の先頭(一般には連鎖リストの途中)から従
来方式と同様の最終探索を開始するという、2段
構えの連鎖探索を行う構成であるから、探索時の
ソートキーどうしの比較回数が大幅に圧縮され、
これに伴いソート時間が大幅に短縮されるという
顕著な効果が奏される。
式は、探索と並行して連鎖リスト上に所定周期の
探索開始位置を設定してゆき、常に連鎖リストの
先頭から探索を行うのではなく、まず少ない比較
回数で探索開始位置を決定し、決定した探索開始
位置の先頭(一般には連鎖リストの途中)から従
来方式と同様の最終探索を開始するという、2段
構えの連鎖探索を行う構成であるから、探索時の
ソートキーどうしの比較回数が大幅に圧縮され、
これに伴いソート時間が大幅に短縮されるという
顕著な効果が奏される。
例えば、合計102個から成るデータ群の最後の
新データを101個のデータについて既に作成され
ている連鎖リストの末尾に追加する場合、従来の
ソート方式によればソートキーどうしの比較を
101回行なう必要がある。
新データを101個のデータについて既に作成され
ている連鎖リストの末尾に追加する場合、従来の
ソート方式によればソートキーどうしの比較を
101回行なう必要がある。
これに対して、本発明のソート方式で10飛び周
期で探索開始位置を設定したとすれば、ソートキ
ーどうしの比較回数を、探索開始位置の決定の際
に10回、最終探索の際に1回の合計11回で済ませ
ることができる。
期で探索開始位置を設定したとすれば、ソートキ
ーどうしの比較回数を、探索開始位置の決定の際
に10回、最終探索の際に1回の合計11回で済ませ
ることができる。
データの個数が増加するにつれて、本発明によ
るソート時間短縮の効果は一層顕著になる。
るソート時間短縮の効果は一層顕著になる。
第1図は本発明の一実施例の機能ブロツク図、
第2図乃至第13図は第1図の作用を説明するた
めの概念図である。 1……データ入力手段、2……探索開始位置決
定手段、3……探索手段、4……探索開始位置設
定手段、5……連鎖リスト更新手段、6……探索
開始位置保持手段、7……連鎖リスト保持手段、
8……新データ保持手段。
第2図乃至第13図は第1図の作用を説明するた
めの概念図である。 1……データ入力手段、2……探索開始位置決
定手段、3……探索手段、4……探索開始位置設
定手段、5……連鎖リスト更新手段、6……探索
開始位置保持手段、7……連鎖リスト保持手段、
8……新データ保持手段。
Claims (1)
- 【特許請求の範囲】 1 データの配列を示す連鎖リストに追加すべき
新たなデータのソートキーをこの連鎖リスト内の
既存のデータのソートキーと比較してその配列位
置を決定する探索動作を繰り返すことにより各デ
ータをソートキーの順に配列してゆくデータのソ
ート方式において、 作成中の連鎖リストを保持する連鎖リスト保持
手段と、 探索を開始すべき連鎖リスト上の位置情報を保
持する探索開始位置保持手段と、 新たなデータのソートキーと前記探索開始位置
保持手段に保持されている探索開始位置のデータ
のソートキーとを比較して探索開始位置を決定す
る探索開始位置決定手段と、 この探索開始位置決定手段で決定された探索開
始位置から探索を開始する探索手段と、 この探索手段の探索結果に従つて前記連鎖リス
ト保持手段に保持されている連鎖リストを更新す
る連鎖リスト更新手段と、 前記探索手段による1データ当たりのソートキ
ーどうしの比較回数が所定値に達するたびに、比
較対象となつたデータの連鎖リスト上の位置情報
を前記探索開始位置保持手段に追加する探索開始
位置設定手段とを備えたことを特徴とするデータ
のソート方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11923185A JPS61278933A (ja) | 1985-05-31 | 1985-05-31 | デ−タのソ−ト方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11923185A JPS61278933A (ja) | 1985-05-31 | 1985-05-31 | デ−タのソ−ト方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61278933A JPS61278933A (ja) | 1986-12-09 |
JPH058450B2 true JPH058450B2 (ja) | 1993-02-02 |
Family
ID=14756204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11923185A Granted JPS61278933A (ja) | 1985-05-31 | 1985-05-31 | デ−タのソ−ト方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61278933A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713809B2 (ja) * | 1987-09-17 | 1995-02-15 | 工業技術院長 | 序列付与回路 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58129544A (ja) * | 1982-01-28 | 1983-08-02 | Mitsubishi Electric Corp | デ−タ分類記憶装置 |
-
1985
- 1985-05-31 JP JP11923185A patent/JPS61278933A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58129544A (ja) * | 1982-01-28 | 1983-08-02 | Mitsubishi Electric Corp | デ−タ分類記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
JPS61278933A (ja) | 1986-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5497485A (en) | Method and apparatus for implementing Q-trees | |
CA1085056A (en) | Multipass sorter for arranging an input list into numerical order | |
US4514826A (en) | Relational algebra engine | |
US4295206A (en) | Document sorting method | |
US2735082A (en) | Goldberg ett al | |
US7062499B2 (en) | Enhanced multiway radix tree and related methods | |
JPH02178730A (ja) | 分割法を用いた内部ソート方式 | |
JP2753260B2 (ja) | マージ方法 | |
US4524427A (en) | Method for making comparisons between reference logical entities and logical entities proceeding from a file | |
JPH058450B2 (ja) | ||
JPS6142031A (ja) | ソ−ト処理装置 | |
US4332014A (en) | Data retrieval system | |
JPS6172333A (ja) | 複数ファイルのマージ方法 | |
JPS59121436A (ja) | デ−タ群のソ−ト方法 | |
JPS6143338A (ja) | 連想技術を使用して稀薄なデータベースをサーチする方法 | |
JPH1139344A (ja) | 2次元配列コードを用いた文字列検索方法 | |
JPH01228022A (ja) | 二次元データ格納方式 | |
JPS63298524A (ja) | デ−タ検索システム | |
JPS6113340A (ja) | ハツシユ制御方式 | |
JPH0774988B2 (ja) | ート処理装置 | |
JPH0926872A (ja) | パイプラインマージソータ | |
JPS63118958A (ja) | 索引フアイル記憶装置 | |
JPH03282885A (ja) | 学習機能付テーブル検索装置 | |
JPH0577097B2 (ja) | ||
JPS6116327A (ja) | デ−タ処理装置 |