DE4438652A1 - Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise - Google Patents
Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven WeiseInfo
- Publication number
- DE4438652A1 DE4438652A1 DE19944438652 DE4438652A DE4438652A1 DE 4438652 A1 DE4438652 A1 DE 4438652A1 DE 19944438652 DE19944438652 DE 19944438652 DE 4438652 A DE4438652 A DE 4438652A DE 4438652 A1 DE4438652 A1 DE 4438652A1
- Authority
- DE
- Germany
- Prior art keywords
- list
- sublists
- sorted
- sequential
- sorting
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die vorliegende Erfindung bezieht sich auf ein Verfahren und
eine Vorrichtung zum stabilen Sortieren oder Mischen sequen
tieller Listen und insbesondere auf ein Verfahren und eine
Vorrichtung zum stabilen Sortieren oder Mischen sequentiel
ler Listen in einer raumadaptiven Weise.
Sequentielle Listen werden im allgemeinen zur Verwendung bei
vielen Aspekten der Datenverarbeitung sortiert. Die Sortie
rung basiert auf einem Schlüssel, der auf natürliche Zahlen
abbildbar ist. Der Schlüssel kann einen weiten Bereich von
Dingen, wie z. B. Angestelltenzahl, Angestelltenalter, Far
ben, geographische Standorte, etc. darstellen. Die sequen
tielle Liste kann eine breite Vielfalt von Anwendungen, ein
schließlich Datenbankaufzeichnungen oder anderer Datenli
sten, darstellen. Das Sortieren der Liste ordnet die Elemen
te in der Liste in einer relativen Reihenfolge neu. Das Sor
tieren wird stabil genannt, wenn die relative Reihenfolge
gleicher Elemente in der sortierten Liste die gleiche ist
wie in der Eingabeliste.
Bekannte Verfahren zum stabilen Sortieren von Listen wurden
vor vielen Jahren entwickelt. Die bekannten Sortiertechniken
bestehen aus zwei Typen. Der erste Typ ist ein "In-Place"-
Lösungsansatz, der keine Speicherung oder Pufferung eines
temporären Speichers erfordert. Bei dem zweiten Typ ist es
notwendig, daß der verfügbare Speicher mindestens so groß
ist wie die Größe der sequentiellen Liste, die sortiert
wird.
Sequentielle Listen, die vorher sortiert wurden, werden im
allgemeinen zur Verwendung bei vielen Aspekten der Daten
verarbeitung gemischt. Bekannte stabile Mischverfahren zum
Mischen von Listen wurden ebenfalls vor vielen Jahren ent
wickelt. Die bekannten Mischverfahren enthalten sowohl den
ersten als auch den zweiten Typen, wie dies auch beim Sor
tieren der Fall war.
Beispiele bekannter stabiler Sortier- und Misch-Techniken
sind in USL C++ Standard Components Library, published by
AT and UNIX System Laboratories (Veröffentlichung 3.0)
beschrieben. Zusätzlich ist ein Beispiel eines bekannten
stabilen Sortierens ein Misch-Sortieren, wie bei D.E. Knuth,
The Art of Computer Programming, Ausgabe 3: Sorting and
Searching (Addison-Wesley, 1973), beschrieben ist. Ferner
ist ein Beispiel eines bekannten stabilen Mischverfahrens
bei Dudzinski und Dydek, Information Processing Letters,
Ausgabe 12, Nr. 1, Feb. 13, 1981, beschrieben.
Das Problem bei diesen bekannten stabilen Sortier- und
Misch-Techniken besteht darin, daß das Verhalten in den mei
sten Fällen nicht optimiert ist. Speziell weist der "In-
Place"-Lösungsansatz, der keinen zusätzlichen Speicher er
fordert, ein schlechtes Verhalten auf, da er verfügbaren
Speicher nicht ausnutzt. Der zweite Typ bekannten stabilen
Sortierens und Mischens arbeitet in Situationen nicht effi
zient, in denen der verfügbare Speicher kleiner ist als die
Größe der sequentiellen Liste. Da die vorliegende Erfindung
nur stabile Sortier- und stabile Misch-Techniken betrifft,
ist die Optimierung von vordringlicher Bedeutung. Wenn z. B.
mit Datenbanken gearbeitet wird, muß die relative Ordnung in
den meisten Fällen konserviert werden. Daher ist nur ein
stabiles Sortieren und ein stabiles Mischen brauchbar.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine
stabile Sortiertechnik und eine stabile Mischtechnik zu
schaffen, die in der Lage sind, mit einem optimierten Ver
halten zu arbeiten, ungeachtet der Größe des verfügbaren
Speichers.
Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch
1 gelöst.
Allgemein gesprochen ist die Erfindung sowohl eine stabile
Sortiertechnik als auch eine stabile Mischtechnik, die eine
Anpassung an den verfügbaren Speicherbetrag herstellt.
Im allgemeinen ist die Erfindung wirksam, um eine stabile
Verarbeitungsoperation (z . B. Mischen, Sortieren, Partitio
nieren und dergleichen) an den Speicher anzupassen, der in
einer Vorrichtung oder einem System verfügbar ist. Neben dem
Empfangen zumindest einer sequentiellen Liste (mit einer Li
stengröße), die verarbeitet werden soll, wird der Speicher
betrag, der zur Verwendung verfügbar ist, bestimmt. Als
nächstes wird die Größe der zumindest einen sequentiellen
Liste mit dem Speicherbetrag, der zur Verwendung verfügbar
ist, verglichen. Die zumindest eine sequentielle Liste wird
dann in Unterlisten geteilt, bis die Größe der Unterlisten
den zur Verwendung verfügbaren Speicherbetrag nicht über
schreitet.
Danach wird die Verarbeitungsoperation auf jeder der Unter
listen durchgeführt. Die Erfindung kann entweder ausgeführt
sein, um eine stabile Sortiertechnik oder eine stabile
Mischtechnik durchzuführen.
Die stabile Sortiertechnik gemäß der Erfindung ist raum
adaptiv. Folglich ist die neuartige stabile Sortiertechnik
in der Lage, so viel Speicher auszunutzen, wie verfügbar
ist, selbst wenn der verfügbare Betrag kleiner ist als die
Größe der sequentiellen Liste (eindimensionales Array von
Objekten), die sortiert werden soll. Folglich ermöglicht es
die Erfindung, daß ein stabiles Sortieren in einem Daten
verarbeitungssystem mit einer optimierten Verarbeitungs
effizienz auftritt.
Die stabile Sortiertechnik gemäß der Erfindung kann entweder
als eine Vorrichtung oder ein Verfahren ausgeführt sein.
Ferner kann die Sortiertechnik entweder ein Misch-Sortier-
Lösungsansatz oder ein diskreter Sortier-Lösungsansatz sein.
Eine Ausführung einer stabilen Sortiervorrichtung gemäß der
Erfindung umfaßt eine raumadaptive Sortiervorrichtung und
einen Speicher, der mit derselben verbunden ist. Die raum
adaptive Sortiervorrichtung empfängt eine sequentielle Li
ste, die sortiert werden soll, sortiert die sequentielle
Liste stabil und gibt eine sortierte Liste aus. Der Speicher
speichert temporär Elemente der sequentiellen Liste, während
die Sortiervorrichtung die sequentielle Liste sortiert.
Um unter Verwendung des Misch-Sortier-Lösungsansatzes in
einer raumadaptiven Weise zu arbeiten, umfaßt die Vorrich
tung ferner eine Teilungseinheit zum Teilen der sequentiel
len Liste in erste und zweite Unterlisten, eine Vergleichs
einheit zum Vergleichen der Größe der Unterlisten mit dem
Betrag des Speichers, der zur Verwendung durch die Sortier
vorrichtung verfügbar ist, eine weitere Teilungseinheit zum
Unterteilen der Unterlisten in Unterlisten, wenn festge
stellt wird, daß die Größe der Unterlisten den Betrag des
verfügbaren Speichers überschreitet, eine Sortiereinheit zum
Sortieren der Unterlisten, um sortierte Unterlisten zu er
halten, und eine Mischeinheit zum stabilen Mischen der sor
tierten Unterlisten unter Verwendung des Speichers, wodurch
die sortierte Liste erzeugt wird.
Alternativ umfaßt die Vorrichtung ferner, um in einer raum
adaptiven Art und Weise unter Verwendung des diskreten Sor
tierlösungsansatzes zu arbeiten, eine Vergleichseinheit zum
Vergleichen der Größe der Liste mit einem Speicherbetrag,
der zur Verwendung durch die Sortiervorrichtung verfügbar
ist, eine Partitionierungseinheit zum stabilen Partitionie
ren der Liste unter Verwendung eines der Elemente der Liste
als ein Prädikat, um drei Unterlisten zu erzeugen, wenn die
Vergleichseinheit feststellt, daß die Größe der Listen eine
vorbestimmte Größe überschreitet, und eine Sortiereinheit
zum Sortieren jeder der Unterlisten reduzierter Größe (d. h.
einer Größe kleiner als der vorbestimmten Größe), um sor
tierte Unterlisten zu erhalten.
Als Verfahren kann die Sortiertechnik ebenfalls entweder den
Misch-Sortier-Lösungsansatz oder den diskreten Sortierlö
sungsansatz verwenden. Gemäß dem Misch-Sortier-Lösungsansatz
wird das Verfahren durch ein Datenverarbeitungssystem mit
einem Speicher durchgeführt. Das Verfahren weist folgende
Schritte auf: Empfangen einer sequentiellen Liste; Teilen
der sequentiellen Liste in eine erste und eine zweite Unter
liste; Bestimmen eines Speicherbetrags, der zur Verwendung
verfügbar ist; Vergleichen der Größen der Unterlisten mit
dem Speicherbetrag, der zur Verwendung verfügbar ist; Teilen
der Unterlisten in weitere Unterlisten, wenn die Größe der
Unterlisten den Speicherbetrag, der zur Verwendung verfügbar
ist, überschreiten; Sortieren jeder der Unterlisten, um sor
tierte Unterlisten zu erhalten; und stabiles Mischen der
Unterlisten, um eine sortierte Liste zu erhalten.
Alternativ kann die Sortiertechnik den diskreten Sortier
lösungsansatz verwenden. In diesem Fall umfaßt das Verfah
ren, das von dem Datenverarbeitungssystem durchgeführt wird,
folgende Schritte: Empfangen der sequentiellen Liste; Be
stimmen eines Speicherbetrags, der zur Verwendung verfügbar
ist; Vergleichen der Größe der Liste mit dem Speicherbetrag,
der zur Verwendung verfügbar ist; Auswählen eines der Ele
mente der Liste als ein Prädikat, wenn die Größe der Liste
den Speicherbetrag, der zur Verwendung verfügbar ist, über
schreitet; stabiles Partitionieren der Liste unter Verwen
dung des Prädikats, um drei Unterlisten zu erzeugen; und
stabiles Sortieren bestimmter Unterlisten, die eine
Größe aufweisen, die den Speicherbetrag, der zur Verwendung
verfügbar ist, nicht überschreitet.
Desgleichen ist die stabile Mischtechnik gemäß der Erfindung
raumadaptiv. Folglich ist die neuartige stabile Mischtechnik
in der Lage, so viel Speicher auszunutzen, wie verfügbar
ist, selbst wenn der Betrag kleiner ist als die Größe der
sequentiellen sortierten Listen, die gemischt werden. Folg
lich ermöglicht es die Erfindung, daß eine stabile Mischung
in einem Datenverarbeitungssystem mit einer optimierten Ver
arbeitungseffizienz auftritt.
Die stabile Mischtechnik gemäß der Erfindung kann als eine
Vorrichtung oder ein Verfahren ausgeführt sein. Ein Ausfüh
rungsbeispiel einer raumadaptiven stabilen Mischvorrichtung
gemäß der Erfindung umfaßt eine raumadaptive Mischvorrich
tung und einen Speicher, der mit derselben verbunden ist.
Die raumadaptive Mischvorrichtung empfängt erste und zweite
sortierte sequentielle Listen, mischt die erste und zweite
sortierte sequentielle Liste stabil und gibt eine einzelne
sortierte Liste aus. Der Speicher speichert bestimmte Ele
mente zumindest einer der sequentiellen Listen temporär,
während die Mischvorrichtung die erste und zweite sortierte
sequentielle Liste mischt. Um in einer raumadaptiven Weise
zu arbeiten, umfaßt die Vorrichtung ferner eine Vergleichs
einheit zum Vergleichen der Listengrößen mit dem Speicher
betrag, der zur Verwendung durch die Mischvorrichtung ver
fügbar ist, eine Teilungseinheit zum Teilen einer der se
quentiellen sortierten Listen in eine erste und eine zweite
Unterliste, wenn bestimmt wird, daß beide Listengrößen den
verfügbaren Speicherbetrag überschreiten, eine Segmentier
einheit zum Segmentieren der anderen der sequentiellen sor
tierten Listen gemäß dem ersten Element der zweiten Unter
liste, um dritte und vierte Unterlisten zu erzeugen, und
eine Mischeinheit zum stabilen Mischen der ersten und drit
ten Unterlisten unter Verwendung des Speichers und zum sta
bilen Mischen der zweiten und vierten Unterlisten unter Ver
wendung des Speichers, wodurch die kombinierte sortierte
Liste erzeugt wird. Vorzugsweise ist ferner eine Austausch-
oder Rotier-Einheit vorgesehen, um die zweiten und dritten
Unterlisten auszutauschen oder zu rotieren, um es der Misch
einheit zu ermöglichen, auf zwei nebeneinanderliegenden Li
sten zu arbeiten.
Als Verfahren mischt die stabile Mischtechnik erste und
zweite sortierte sequentielle Listen. Das Verfahren wird
durch ein Datenverarbeitungssystem mit einem Speicher durch
geführt und umfaßt folgende Schritte: Empfangen der ersten
und zweiten sequentiellen sortierten Liste; Bestimmen eines
Speicherbetrags, der zur Verwendung verfügbar ist; Verglei
chen der Listengröße mit dem Speicherbetrag, der zur Verwen
dung verfügbar ist; Teilen einer der sequentiellen sortier
ten Listen in erste und zweite Unterlisten, wenn bestimmt
wird, daß die Größe beider sequentieller Listen den Spei
cherbetrag, der zur Verwendung verfügbar ist, überschreiten;
Segmentieren der anderen der sequentiellen sortierten Listen
gemäß einem ersten Element der zweiten Unterliste, um dritte
und vierte Unterlisten zu erzeugen; und stabiles Mischen der
ersten und dritten Unterlisten unter Verwendung des Spei
chers und stabiles Mischen der zweiten und vierten Unterli
sten unter Verwendung des Speichers.
Somit ergibt sowohl die raumadaptive Sortier- als auch die
raumadaptive Misch-Technik gemäß der Erfindung ein optimales
Verhalten, ungeachtet des verfügbaren Speicherbetrags.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend unter Bezugnahme auf die beiliegenden
Zeichnungen näher erläutert. Es zeigen:
Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Ausführungsbeispiels einer
raumadaptiven Mischvorrichtung;
Fig. 2A und 2B schematische Diagramme einer sequentiellen
Liste und eines verfügbaren Speichers;
Fig. 3A und 3B Flußdiagramme eines Ausführungsbeispiels ei
ner raumadaptiven stabilen Mischtechnik gemäß der
Erfindung;
Fig. 4 ein Blockdiagramm eines Ausführungsbeispiels einer
raumadaptiven Sortiervorrichtung;
Fig. 5A, 5B und 5C Flußdiagramme eines ersten Ausführungs
beispiels einer raumadaptiven stabilen Sortiertech
nik gemäß der Erfindung;
Fig. 6 ein Flußdiagramm eines zweiten Ausführungsbeispiels
einer raumadaptiven stabilen Sortiertechnik gemäß
der Erfindung; und
Fig. 7A, 7B und 7C Flußdiagramme einer raumadaptiven Par
titionierungstechnik, die von dem zweiten Aus
führungsbeispiel der raumadaptiven Sortiertechnik
verwendet wird.
In den Figuren zeigen gleiche Bezugszeichen gleiche struk
turelle Elemente an. Ausführungsbeispiele der Erfindung sind
nachfolgend bezugnehmend auf die Fig. 1 bis 7 erörtert.
Die Erfindung ist allgemein wie folgt beschrieben. Die Er
findung ist wirksam, um eine stabile Verarbeitungsoperation
(z. B. Mischen, Sortieren, Partitionieren und dergleichen) an
den Speicher, der in der Vorrichtung oder dem System verfüg
bar ist, anzupassen. Neben dem Empfangen zumindest einer se
quentiellen Liste (mit einer Listengröße), die verarbeitet
werden soll, wird der Speicherbetrag, der zur Verwendung
verfügbar ist, bestimmt. Als nächstes wird die Größe von
zumindest einer sequentiellen Liste mit dem Speicherbetrag,
der zur Verwendung verfügbar ist, verglichen. Die zumindest
eine sequentielle Liste wird dann in Unterlisten geteilt,
bis die Größe der Unterlisten den zur Verwendung verfügbaren
Speicherbetrag nicht überschreitet. Danach wird die Verar
beitungsoperation auf jeder der Unterlisten durchgeführt.
Verschiedene Ausführungsbeispiele der Erfindung sind nach
folgend dargestellt.
Fig. 1 ist ein Blockdiagramm eines Ausführungsbeispiels ei
ner raumadaptiven Mischvorrichtung 1. Die Vorrichtung 1 um
faßt eine raumadaptive Mischvorrichtung 2 und einen Speicher
4. Die raumadaptive Mischvorrichtung 2 empfängt eine erste
sortierte sequentielle Liste 6 und eine zweite sequentielle
Liste 8 als Eingaben und gibt eine sortierte Liste 10 aus.
Die raumadaptive Mischvorrichtung 2 ist ferner wirksam mit
dem Speicher 4 verbunden.
Die raumadaptive Mischvorrichtung 2 kann in einer großen
Vielfalt von Vorrichtungen oder Systemen, einschließlich
elektrischer Schaltungen, Robotern, Computersoftware, Com
puterfirmware und Computerhardware, ausgeführt sein. Die
Quantität des verfügbaren Speichers 4 ändert sich mit der
Anwendung. Die sequentiellen Listen 6, 8 sind eindimensiona
le Arrays von Objekten (oder Elementen). Zusätzlich können
die sequentiellen Listen eine beliebige Größe und Breite
aufweisen. Die Liste kann sich z. B. von einigen 1-Bit-Ele
menten zu vielen Datenbankaufzeichnungen mit einer Mehrzahl
von Multi-Bit-Feldern ändern. Da die sequentiellen Listen 6,
8 als eindimensionale Arrays von Objekten definiert sind,
enthalten sie keine verbundenen Listen.
Die Fig. 2A und 2B sind schematische Diagramme, die eine
Eingabeliste, die eine erste sortierte sequentielle Liste 6′
und eine zweite sortierte sequentielle Liste 8′ einschließt,
darstellen. Die sequentielle Liste 6′ hat fünf Elemente, die
numerisch sortiert sind, und die sequentielle Liste 8′ hat
sechs Elemente, die sequentiell sortiert sind. Der verfügba
re Speicher 4′ ist in der Lage, bis zu drei Elemente zu
speichern. Zur Vereinfachung konzentriert sich der Rest der
Erörterung, die die raumadaptive Mischtechnik betrifft, auf
das vereinfachte Arbeitsbeispiel, das in den Fig. 2A und
2B dargestellt ist.
Obwohl die Arbeitsweise der Erfindung nachfolgend detail
liert beschrieben ist, ist die allgemeine Arbeitsweise der
raumadaptiven Mischvorrichtung 1 wie folgt.
Ein wichtiger Vorteil der Arbeitsweise der raumadaptiven
Mischvorrichtung 1 besteht darin, daß sie sich gemäß dem
Speicherbetrag 4, der verfügbar ist, ändert. Typischerweise
ist der Speicherbetrag 4 (Datenspeicher), der in einer Vor
richtung oder einem Computersystem verfügbar ist, begrenzt
und zahlreichen Operationen oder Aufgaben zugeordnet. Bei
der vorliegenden Erfindung bestimmt die raumadaptive Misch
vorrichtung 2 den Speicherbetrag (z. B. Pufferung), den der
Speicher 4 der Vorrichtung 2 bieten kann, oder dieser wird
ihr mitgeteilt. Die raumadaptive Mischvorrichtung 2 ist dann
in der Lage, ihre Arbeitsweise anzupassen, um den größten
Nutzen aus dem Speicher 4, der verfügbar ist, zu ziehen.
Wenn der verfügbare Speicherbetrag 4 mindestens so groß ist
wie die Größe einer der ersten und der zweiten sortierten
sequentiellen Liste 6, 8, wird die Liste, die in den verfüg
baren Speicher 4 paßt, in den verfügbaren Speicher 4 bewegt.
Als nächstes werden alle Elemente der Listen miteinander
verglichen. Anfänglich wird das erste Element jeder Liste
verglichen, und das kleinere der beiden wird auf die erste
Position der Liste plaziert. Als nächstes wird das größere
der ersten Elemente mit dem zweiten Element der anderen Li
ste verglichen. Das kleinere der beiden Elemente wird auf
die zweite Position der Liste plaziert. Nachdem alle Elemen
te in der ersten und der zweiten sortierten sequentiellen
Liste 6, 8 verarbeitet sind, sind nun alle Elemente in der
gesamten Eingabeliste sortiert. Es sollte bemerkt werden,
daß die Arbeitsweise der Vorrichtung 1 die relative Reihen
folge der Objekte in den ursprünglichen sortierten Listen
konserviert, wobei folglich die Mischtechnik nicht nur raum
adaptiv, sondern ferner stabil gemacht wird.
Wenn der verfügbare Speicherbetrag 4 nicht so groß ist wie
die Größe entweder der ersten oder der zweiten sortierten
sequentiellen Liste 6, 8, unterscheidet sich die Verarbei
tung. Vor der Verarbeitung der Listen 6, 8 wird nämlich die
größere der ersten und der zweiten sortierten sequentiellen
Liste 6, 8 halbiert, wobei erste und zweite Untersegmente
gebildet werden. Wenn die Listen eine gleiche Größe aufwei
sen, kann jede halbiert werden. Als nächstes wird die klei
nere der ersten und zweiten sortierten sequentiellen Liste
6, 8 in erste und zweite Untersegmente gemäß dem ersten Ele
ment des zweiten Untersegments der größeren Liste segmen
tiert. Ein erstes Untersegment der größeren Liste wird dann
mit einem Untersegment der kleineren Liste rotiert oder aus
getauscht. Wenn das Untersegment der größeren Liste nämlich
das erste Untersegment ist, wird es mit dem zweiten Unter
segment der kleineren Liste rotiert oder ausgetauscht, und
umgekehrt. Als nächstes werden die ersten Untersegmente der
größeren und kleineren Liste gemischt, und die zweiten
Untersegmente der größeren und kleineren Liste werden ge
mischt. Typischerweise umfaßt die Eingabeliste die zwei sor
tierten Listen, die gemischt werden sollen, wobei in diesem
Fall die resultierende Liste die Eingabeliste ist, die nun
sortiert werden soll. Es sei zu bemerken, daß, wenn nach der
Teilung, Segmentierung und Austauschung der Betrag des ver
fügbaren Speichers 4 noch nicht so groß ist wie die Unter
segmente, die gemischt werden sollen, die Halbierung oder
Unterteilung in einer rekursiven Art und Weise fortgesetzt
wird, bis die Bedingung erfüllt ist. Für jede Teilung der
Listen oder Untersegmente gibt es eine nachfolgende Kombi
nieroperation.
Die Arbeitsweise der raumadaptiven Mischvorrichtung 2 ist
nachfolgend in der Beschreibung eines Ausführungsbeispiels
des Verfahrens gemäß der Erfindung detaillierter beschrie
ben.
Die Fig. 3A und 3B sind Flußdiagramme der raumadaptiven
stabilen Mischtechnik gemäß einem Ausführungsbeispiel der
vorliegenden Erfindung.
Die raumadaptive stabile Mischtechnik oder das raumadaptive
stabile Mischverfahren beginnt mit einer Entscheidung 12.
Die Entscheidung 12 bestimmt, ob der verfügbare Speicher 4
größer oder gleich der Größe einer der Listen 6, 8 ist oder
nicht.
In dem ersten Fall, nämlich wenn die Entscheidung 12 fest
stellt, daß der verfügbare Speicherbetrag mindestens so groß
ist wie die Größe einer der Listen 6, 8, können die sortier
ten Listen 6, 8 ohne jede Anpassung an den verfügbaren Spei
cherbetrag 4 gemischt werden. Die Verarbeitungsschritte für
diesen Fall sind nachfolgend detaillierter bezugnehmend auf
Fig. 3B erörtert.
In dem zweiten Fall, nämlich wenn die Entscheidung 12 fest
stellt, daß der verfügbare Speicherbetrag 4 kleiner ist als
die Größe beider sortierten Listen 6, 8, unterscheidet sich
die Verarbeitung. In diesem Fall wird die größere der Listen
6, 8 halbiert 14, um ein erstes und ein zweites Untersegment
zu bilden. Als nächstes wird die kleinere der Listen 6, 8
gemäß dem ersten Element des zweiten Untersegments der grö
ßeren Liste in ein erstes und ein zweites Untersegment seg
mentiert 16. Tabelle I, die unten dargestellt ist, zeigt die
Teilung 14 und Segmentierung 16 für das Arbeitsbeispiel.
Die Doppellinie "||" zeigt an, wo die Teilungen oder Segmen
tierungen auftraten. Die Untersegmente L-1te und L-2te re
sultieren nämlich aus der Teilung und die Untersegmente
S-1te und S-2te resultieren aus der Segmentierung. In dem
Arbeitsbeispiel ist vorausgesetzt, daß der verfügbare Spei
cher bis zu drei Elemente, wie in Fig. 2B dargestellt ist,
speichern kann.
Als nächstes wird ein Untersegment der größeren Liste mit
einem Untersegment der kleineren Liste ausgetauscht 18 (oder
rotiert). Wenn die kleinere Liste der größeren Liste vor
ausgeht, wird das erste Untersegment der größeren Liste mit
dem zweiten Untersegment der kleineren Liste ausgetauscht,
oder umgekehrt. Tabelle II, die unten dargestellt ist, zeigt
die Austauschoperation für das Arbeitsbeispiel.
Die Beispiele, die in den Tabellen I und II gezeigt sind,
entsprechen der Situation, bei der nur eine Teilung 14 not
wendig ist. Im allgemeinen würden die Blöcke 14 bis 18 je
doch wiederholt werden, bis die Größe eines der Unterseg
mente kleiner oder gleich dem verfügbaren Speicherbetrag 4
ist.
Sobald der Austausch 18 stattgefunden hat, werden die ersten
Untersegmente, die nun aneinander angrenzen, gemischt 20, um
einen ersten Teil der sortierten Liste zu bilden. Als näch
stes werden die zweiten Untersegmente, die nun aneinander
angrenzen, gemischt 22, um den zweiten Teil der sortierten
Liste zu bilden. Das Untersegment (L-1te) und das Unterseg
ment (S-1te) werden z. B. bezugnehmend auf die Tabellen I und
II gemischt, und das Untersegment (L-2te) und das Unterseg
ment (S-2te) werden gemischt. Tabelle III, die unten darge
stellt ist, zeigt das Mischen 20, 22, um für das Arbeits
beispiel, das in den Tabellen I und II enthalten ist, die
sequentielle Liste 6 zu bilden.
Das Austauschen 18 kann von Fachleuten auf eine Anzahl von
bekannten Arten erreicht werden. Z.B. kann ein "In-Place"-
Rotationsschema verwendet werden. Alternativ ist es jedoch
bevorzugt, den verfügbaren Speicher 4 bei der Durchführung
der Austauschoperation auszunutzen, da dies gewöhnlich
schneller sein wird. Wenn z. B. eines der Untersegmente, das
bewegt werden soll, in den verfügbaren Speicher 4 paßt, wird
das Untersegment dorthin bewegt. Danach wird das andere Seg
ment, das bewegt werden soll, auf die freigewordenen Plätze
in der Liste bewegt, und schließlich wird der Teil, der im
verfügbaren Speicher 4 enthalten ist, auf die neu freigewor
denen anderen Plätze in der Liste bewegt. Im allgemeinen
wird jedes Paar von angrenzenden Untersegmenten nach den
Teil-, Segmentier- und Austausch-Operationen in umgekehrter
Reihenfolge gemischt, wenn eine Mehrzahl von Unterteilungen
notwendig ist.
Obwohl das oben beschriebene Verfahren die Arbeitsweise der
raumadaptiven Mischtechnik beschreibt, arbeitet das Aus
führungsbeispiel auch in dem Fall, in dem der verfügbare
Speicher mindestens gleich der Größe einer der Listen 6, 8
ist. In diesem Fall müssen die Listen 6, 8 nicht geteilt 14
oder segmentiert 16 werden, um an die Größe des verfügbaren
Speichers 4 anpaßt zu werden. Das Verfahren hierzu ist in
Fig. 3B dargestellt und arbeitet wie folgt. Sobald die Ent
scheidung 12 die Steuerung zu Block 24 leitet, da der ver
fügbare Speicherbetrag 4 mindestens gleich der Größe einer
der Listen 6, 8 ist, kann eine nicht-adaptive Mischverar
beitung verwendet werden. Diese Verarbeitung wird als
nicht-adaptives Mischen bezeichnet, da garantiert ist, daß
der Speicher eine ausreichende Größe hat.
Zuerst empfängt 26 die raumadaptive Mischvorrichtung 2 die
erste und die zweite sortierte Liste, die gemischt werden
sollen. Die erste sortierte Liste wird dann in den verfüg
baren Speicher 4 bewegt. Als nächstes wird ein Zeiger P1 auf
die Adresse des ersten Elements der ersten sortierten Liste
in dem verfügbaren Speicher 4 eingestellt 30. Ähnlich wird
ein Zeiger P2 auf die Adresse des ersten Elements der zwei
ten sortierten Liste eingestellt 32. Ein Momentanplatzzeiger
(CLP; CLP = Current Location Pointer) wird ebenfalls auf die
Adresse des ersten Elements der gemischten Liste eingestellt
34.
Als nächstes wird auf der Grundlage, ob das Element bei P1
in dem verfügbaren Speicher größer ist als das Element bei
P2 in der zweiten sortierten Liste, eine Entscheidung 36
getroffen. Wenn das Element bei P1 in dem verfügbaren Spei
cher 4 nicht größer ist als das Element bei P2 der zweiten
sortierten Liste, wird das Element bei P1 in dem verfügbaren
Speicher 4 auf den nächsten verfügbaren Platz in der ge
mischten Liste, der durch CLP gekennzeichnet ist, kopiert
38. Danach wird der Zeiger P1 erhöht 40. Andererseits wird
das Element P1 in dem verfügbaren Speicher 4 auf den näch
sten verfügbaren Platz in der gemischten Liste, der durch
CLP gekennzeichnet ist, kopiert 42, wenn das Element bei P1
in dem verfügbaren Speicher 4 größer ist als das Element bei
P2 der zweiten sortierten Liste. Danach wird der Zeiger P2
erhöht 44. Ungeachtet dessen, welches der Elemente auf den
nächsten verfügbaren Speicherplatz in der Liste kopiert
wird, wird der CLP erhöht 46, um auf den nächsten verfügba
ren Platz in der Liste zu zeigen.
Als nächstes wird auf der Grundlage, ob alle Elemente der
sortierten Listen 6, 8 verarbeitet wurden, eine Entscheidung
48 getroffen. Wenn dies nicht der Fall ist, werden die
Blöcke 36 bis 46 wiederholt, bis der Bedingung genügt wird
(z. B. alle Elemente in den sortierten Listen verarbeitet
sind). Sobald alle Elemente verarbeitet wurden, ist die
Mischverarbeitung abgeschlossen.
Fig. 4 ist ein Blockdiagramm eines Ausführungsbeispiels ei
ner raumadaptiven Sortiervorrichtung 50 gemäß der Erfindung.
Die Vorrichtung 50 umfaßt eine raumadaptive Sortiervorrich
tung 52 und einen Speicher 54. Die raumadaptive Sortiervor
richtung 52 empfängt eine sequentielle Liste 56 von Elemen
ten und gibt eine sortierte Liste 58 aus. Das Sortieren kann
entweder ein Misch-Sortieren oder ein diskretes Sortieren
sein. Die raumadaptive Sortiervorrichtung 52 ist ferner
wirksam mit dem Speicher 54 verbunden.
Die raumadaptive Sortiervorrichtung 52 kann in einer großen
Vielfalt von Vorrichtungen oder Systemen, einschließlich
elektrischer Schaltungen, Roboter, Computersoftware, Compu
terfirmware und Computerhardware, ausgeführt sein. Die
sequentielle Liste 56, die von der raumadaptiven Sortier
vorrichtung 50 empfangen wird, ist ein eindimensionales
Array von Objekten (oder Elementen), das sortiert werden
muß. Die sequentielle Liste 56 kann eine beliebige Größe und
Breite haben. Die Liste 56 kann sich z. B. von einigen
1-Bit-Elementen zu vielen Datenbankaufzeichnungen mit einer
Mehrzahl von Multi-Bit-Feldern ändern. Da die sequentielle
Liste 56 als ein eindimensionales Array von Objekten defi
niert ist, enthält sie keine verbundenen Listen.
Obwohl die Arbeitsweise der raumadaptiven Sortiervorrichtung
50 nachfolgend detailliert beschrieben ist, ist die allge
meine Arbeitsweise der Vorrichtung 50 wie folgt. Es sollte
jedoch bemerkt werden, daß sich die Verarbeitung zwischen
dem Misch-Sortier-Ausführungsbeispiel und dem diskreten
Sortier-Ausführungsbeispiel unterscheidet.
Ein wichtiger Vorteil der Arbeitsweise der raumadaptiven
Sortiervorrichtung 50 besteht darin, daß sie sich gemäß dem
Speicherbetrag 54, der verfügbar ist, ändert. Typischerweise
ist der Speicherbetrag 54 (Datenspeicher), der in einer Vor
richtung oder einem Computersystem verfügbar ist, begrenzt
und zahlreichen Operationen oder Aufgaben zugewiesen. Bei
dieser Erfindung bestimmt die raumadaptive Sortiervorrich
tung 52 den Speicherbetrag (z. B. Pufferung), den der Spei
cher 54 der Vorrichtung 52 bieten kann, oder dieser wird ihr
mitgeteilt. Die raumadaptive Sortiervorrichtung 52 ist dann
in der Lage, ihre Arbeitsweise anzupassen, um den größten
Nutzen aus dem Speicher 54, der verfügbar ist, zu ziehen.
Grundsätzlich ist die Arbeitsweise der raumadaptiven Sor
tiervorrichtung 50 für ein Misch-Sortier-Ausführungsbeispiel
wie folgt. Zuerst wird die sequentielle Liste 56 durch die
Sortiervorrichtung 52 in eine erste und eine zweite Unter
liste geteilt. Wenn die sequentielle Liste 56 eine gerade
Anzahl von Elementen aufweist, haben die erste und die zwei
te Unterliste die gleiche Größe. Andernfalls hat eine der
Unterlisten im Vergleich mit der anderen Unterliste ein zu
sätzliches Element. In der restlichen Beschreibung wird
vorausgesetzt, daß die Unterlisten die gleiche Größe haben.
Wenn der verfügbare Speicherbetrag 54 kleiner ist als die
Größe der Unterlisten, werden die Unterlisten wiederum hal
biert. Das Teilen wiederholt sich, bis der verfügbare Spei
cherbetrag 54 gleich der Größe der Unterlisten ist oder die
se überschreitet. In jedem Fall wird jede der Unterlisten
durch die Sortiervorrichtung 52 stabil sortiert, sobald der
verfügbare Speicherbetrag 54 gleich der Größe der Unterli
sten ist oder diese überschreitet, um sortierte Unterlisten
zu erhalten. Die sortierten Unterlisten werden dann Paar für
Paar gemischt, um die sortierte Liste 58 zu erhalten.
Andererseits ist die grundsätzliche Arbeitsweise der raum
adaptiven Sortiervorrichtung 50 für ein diskretes Sortier
ausführungsbeispiel wie folgt. In diesem Fall empfängt die
Sortiervorrichtung 52 die sequentielle Liste 56, die sor
tiert werden soll. Die Sortiervorrichtung 52 bestimmt dann
den Speicherbetrag 54, der zur Verwendung durch die Sor
tiervorrichtung 52 verfügbar ist. Wenn der Speicherbetrag
54, der zur Verwendung verfügbar ist, kleiner ist als die
Größe der Liste, wird ein Element der Liste als ein Prädikat
ausgewählt und die Liste wird stabil unter Verwendung des
Prädikats partitioniert, um drei Unterlisten zu erzeugen.
Danach werden bestimmte der Unterlisten (welche eine Größe
haben, die den Speicherbetrag, der zur Verwendung verfügbar
ist, nicht überschreiten) stabil sortiert.
Die Arbeitsweise der raumadaptiven Sortiervorrichtung 52 ist
detaillierter nachfolgend in der Beschreibung des ersten und
des zweiten Ausführungsbeispiels des Verfahrens gemäß der
Erfindung beschrieben.
Die Fig. 5A, 5B und 5C sind Flußdiagramme der raumadapti
ven stabilen Sortiertechnik gemäß einem ersten Ausführungs
beispiel der Erfindung. Gemäß dem Ausführungsbeispiel be
ginnt die raumadaptive stabile Sortiertechnik durch die Hal
bierung 60 der sequentiellen Liste 56, um eine erste und
eine zweite Unterliste zu bilden. Tabelle IV, die unten dar
gestellt ist, zeigt ein Beispiel einer sequentiellen Liste
56, das als das Arbeitsbeispiel für dieses Ausführungsbei
spiel verwendet ist.
Es sei zu bemerken, daß die Teilung der sequentiellen Liste
eine Unterliste-A und eine Unterliste-B erzeugt hat.
Als nächstes wird auf der Grundlage, ob der Betrag des ver
fügbaren Speichers 54 mindestens so groß wie die Größe der
Unterliste ist, eine Entscheidung 62 getroffen. In dem Fall,
in dem die Entscheidung 62 feststellt, daß der Betrag des
verfügbaren Speichers 54 mindestens gleich der Größe der Un
terlisten ist, können die Unterlisten nämlich einzeln ohne
jede Anpassung an den verfügbaren Speicherbetrag 54 sortiert
werden. In dem zweiten Fall, nämlich wenn der Betrag des
verfügbaren Speichers 54 nicht gleich der Größe der Unter
liste ist oder diese überschreitet, werden die Unterlisten
wiederholt halbiert 64, bis die Bedingung erfüllt ist. Für
das Arbeitsbeispiel in Tabelle IV muß die sequentielle Liste
nur einmal geteilt werden, da in dem Arbeitsbeispiel voraus
gesetzt wird, daß der verfügbare Speicherbetrag 64 mindes
tens gleich sechs Elementen ist.
In jedem Fall wird das Sortieren 66 unter Verwendung einer
nicht-adaptiven Misch-Sortier-Technik erreicht, welche eine
sortierte Unterliste für jede der Unterlisten erzeugt. Eine
Beschreibung des nicht-adaptiven Misch-Sortier-Verfahrens
ist bezugnehmend auf die Fig. 5B und 5C beschrieben. Ob
wohl dieses Ausführungsbeispiel (Fig. 5A) unter Verwendung
einer Misch-Sortier-Technik beschrieben wird, um die Unter
listen stabil zu sortieren, kann diese allgemeiner durch
eine beliebige stabile Sortiertechnik, wie z. B. eine Ein
fügesortierung, ersetzt werden. Nachdem diese sortierten
Unterlisten erhalten wurden, wird jedes Paar von Unterlisten
gemischt 68, um die sortierte Liste zu erhalten.
Fig. 5B ist ein Flußdiagramm, daß die Verfahren des Sortie
rens 66 zeigt, die von der nicht-adaptiven Misch-Sortier-
Technik des ersten Ausführungsbeispiels durchgeführt werden.
Die Verarbeitung beginnt mit einer Entscheidung 70 auf der
Grundlage dessen, ob alle Unterlisten sortiert wurden. Zu
Beginn gibt es beim Arbeitsbeispiel mindestens zwei Unter
listen, die sortiert werden müssen, nämlich sowohl Unter
liste-A als auch Unterliste-B müssen sortiert werden.
Wenn es Unterlisten gibt, die verarbeitet werden sollen,
wird eine der Unterlisten, die verarbeitet werden sollen,
ausgewählt 72. Auf der Grundlage, ob die Listengröße der
Unterliste größer ist als eine vorbestimmte Blockgröße, wird
eine Entscheidung 74 getroffen. Wenn die Listengröße der
Unterliste kleiner oder gleich einer vorbestimmten Block
größe ist, wird ein Einfügungssortierverfahren durchgeführt
76. Das Einfügungssortierverfahren ist detailliert nach
folgend bezugnehmend auf Fig. 5C erörtert. Es sollte wiede
rum offensichtlich sein, daß andere stabile Sortierverfahren
neben dem Einfügungssortierverfahren verwendet werden kön
nen.
Andererseits wird die Unterliste in Blöcke geteilt 78, die
gleich der vorbestimmten Blockgröße sind, wenn die Listen
größe der Unterliste größer als die vorbestimmte Blockgröße
ist. Als nächstes wird das Einfügesortierverfahren durchge
führt 80 (Fig. 5C). Danach werden die resultierenden geord
neten Blöcke der Unterliste stabil gemischt 82, um die Un
terliste neu zu bilden. Da die Blöcke schließlich gemischt
werden 82, wird diese Technik als eine Misch-Sortierung
klassifiziert.
Vorzugsweise hat die Blockgröße sieben Elemente. Deshalb
werden bei dem Arbeitsbeispiel die Blöcke 78 bis 82 nicht
durchgeführt, da die Größe der Unterlisten sechs Elemente
beträgt, was kleiner ist als sieben. Wenn jedoch die se
quentielle Liste hundert Elemente enthält, würde jede Un
terliste fünfzig Elemente enthalten und Block 78 würde jeder
der Unterlisten in acht Blöcke (sieben Blöcke von sieben
Elementen und ein Block von einem Element) teilen.
Nach den Blöcken 76 und 82 wird der Entscheidungsblock 70
wiederholt, um erneut zu bestimmten, ob alle Unterlisten
sortiert wurden. Wenn dies nicht der Fall ist, werden die
Blöcke 72 bis 82 wiederholt, bis alle Unterlisten sortiert
wurden. Sobald jedoch alle Unterlisten sortiert wurden, wird
eine adaptive Mischtechnik durchgeführt 68. Ein Ausführungs
beispiel der adaptiven Mischtechnik wurde oben bezugnehmend
auf die Fig. 3A und 3B beschrieben. Im allgemeinen wird
für jede Teilung 60, 64 der sequentiellen Liste, die not
wendig ist, um die Liste an den verfügbaren Speicherbetrag
54 anzupassen, eine nachfolgende Mischung 68 verwendet, um
die Unterlisten neu zu kombinieren.
Das Einfügesortierverfahren 76, 80 für das erste Ausfüh
rungsbeispiel der adaptiven Misch-Sortier-Technik wird nun
detailliert bezugnehmend auf Fig. 5C beschrieben. Dieses
Verfahren wird entweder von Block 76 (für eine Unterliste)
oder Block 80 (für Blöcke) aufgerufen. Das Einfügesortier
verfahren 76, 80 beginnt durch das Einstellen 86 eines Zei
gers POINTER_FIRST (PF), um auf das erste Element in der Un
terliste oder dem Block zu zeigen. Ein Zeiger POINTER_LAST
(PL) wird ferner auf das letzte Element in der Unterliste
oder dem Block eingestellt 88. Als nächstes wird auf der
Grundlage, ob der Zeiger PL gleich dem Zeiger PF ist, oder
ob der Zeiger PL gleich dem um eins erhöhten Zeiger PF
(PF+1) ist, eine Entscheidung 90 getroffen. Diese Entschei
dung 90 führt eine Überprüfung durch, um zu sehen, ob die
Unterliste oder der Block nur aus Null- oder Eins-Elementen
besteht. Wenn die Entscheidung 90 feststellt, daß die Liste
nur Null- oder Eins-Elemente aufweist, ist die Einfügesor
tiertechnik abgeschlossen, andernfalls geht die Verarbeitung
weiter.
Auf den Block 90 folgend wird ein CURRENT_POINTER (CP) auf
PF + 1 eingestellt 92. Dann wird auf der Grundlage, ob CP
gleich PL ist, eine Entscheidung 94 getroffen, um festzu
stellen, ob die gesamte Unterliste oder der gesamte Block
verarbeitet wurde. Wenn das der Fall ist, ist die Einfüge
sortiertechnik abgeschlossen. Wenn die Liste noch nicht
vollständig verarbeitet ist, wird eine Einfügeoperation
durchgeführt. Speziell wird bei dieser Einfügeoperation das
Element, das sich gegenwärtig am Platz CP befindet, an der
ordnungsgemäßen Position in der Unterliste oder dem Block
startend mit PF und endend mit CP eingefügt 96. Die Einfüge
technik ist Fachleuten gut bekannt. Trotzdem besteht die
elementare Operation darin, am Anfang der Unterliste oder
des Blocks zu beginnen und das gegenwärtige Element, das
sortiert wird, mit dem ersten Element in der Unterliste oder
dem Block zu vergleichen. Wenn das gegenwärtige Element
kleiner ist, wird es durch Abwärtsbewegen aller anderen
Elemente um einen Platz vor der gegenwärtigen Position und
Plazieren des gegenwärtigen Elements an der ersten Stelle in
die Liste eingefügt. Wenn es größer ist, wird der Prozeß für
das zweite Element in der Unterliste oder dem Block wieder
holt. Schließlich wird das gegenwärtige Element entweder
eingefügt oder an seiner momentanen Position in der Unter
liste oder dem Block belassen.
Sobald das Sortieren einer gegebenen Unterliste oder eines
Blocks abgeschlossen ist, ist die Einfügesortierverarbeitung
für die gegebene Unterliste oder den Block abgeschlossen und
die Steuerung springt zu der ordnungsgemäßen Stelle in den
Verfahren, die in Fig. 5B gezeigt sind (nämlich die Blöcke
76 oder 80), zurück. Nachdem alle Unterlisten sortiert wur
den, springt die Steuerung zu Fig. 5A zurück, so daß die Un
terlisten stabil gemischt 68 werden können. Vorzugsweise
wird das Mischen 68 gemäß der raumadaptiven Mischtechnik
gemäß der Erfindung durchgeführt, die oben bezugnehmend auf
die Fig. 3A und 3B beschrieben wurde. In jedem Fall zeigt
Tabelle V, die unten dargestellt ist, die sortierten Unter
listen und die gewünschte sortierte Liste nach dem Mischen
derselben.
Es sei zu bemerken, da das Sortieren stabil ist, die relati
ve Reihenfolge gleicher Elemente beibehalten wird. Z.B. ist
die erste "2" in der sortierten Liste in der ursprünglichen
sequentiellen Liste das Element #6, und die zweite "2" in
der sortierten Liste ist in der ursprünglichen sequentiellen
Liste das Element #12.
Obwohl die raumadaptive stabile Sortiertechnik, die in dem
ersten Ausführungsbeispiel beschrieben ist, in der Lage ist,
die sequentielle Liste schnell zu sortieren, ist ein diskre
tes Sortieren eine spezialisierte Sortiertechnik, die beim
Sortieren von Listen, die viele Elemente, die den gleichen
Wert aufweisen, enthalten, effektiver ist. Daher bezieht
sich ein zweites Ausführungsbeispiel der raumadaptiven sta
bilen Sortiertechnik gemäß der Erfindung auf ein raumadap
tives diskretes Sortieren, das, wie das erste Ausführungs
beispiel, stabil ist. Die raumadaptive Sortiervorrichtung 52
kann jedes dieser Ausführungsbeispiele verwenden.
Fig. 6 ist ein Flußdiagramm des zweiten Ausführungsbeispiels
einer raumadaptiven stabilen Sortiertechnik gemäß der Erfin
dung.
Die raumadaptive diskrete Sortiertechnik beginnt mit einer
Entscheidung 104, die auf der Grundlage, ob die Listengröße
kleiner ist als eine vorbestimmte Größe, getroffen wird, be
gonnen. Vorzugsweise beträgt die vorbestimmte Größe zweiund
dreißig (32) Elemente. Wenn die Listengröße klein ist (d. h.
kleiner als die vorbestimmte Größe), dann wird das Einfüge
sortierverfahren aufgerufen 106. Das Einfügesortierverfah
ren, das oben bezugnehmend auf Fig. 5C erörtert wurde, ist
wirksam, um die Liste zu sortieren.
Andererseits wird ein Element in der Liste zufallsmäßig aus
gewählt 108, wenn die Listengröße nicht klein (d. h. größer
oder gleich der vorbestimmten Größe) ist. Die Liste wird
dann unter Verwendung einer raumadaptiven stabilen Parti
tionierungstechnik partitioniert 110. Die Partitionierungs
technik ist eine Dreifach-Partitionierungstechnik, welche
die Liste auf der Grundlage des Zufallselements in drei Un
terlisten partitioniert. Die raumadaptive stabile Dreifach-
Partitionierung, die hierin verwendet wird, ist detailliert
in der U.S.-Anmeldung 08/155,980 beschrieben. Trotzdem ist
die raumadaptive stabile Dreifach-Partitionierungstechnik
nachfolgend detailliert bezugnehmend auf die Fig. 7A bis
7C beschrieben.
Als nächstes wird auf der Grundlage, ob die Größe der ersten
und der dritten Unterliste kleiner als die vorbestimmte Grö
ße ist, eine Entscheidung 112 getroffen. Wenn dies nicht der
Fall ist, werden die Blöcke 108 bis 112 wiederholt, bis die
erste und die dritte Unterliste der partitionierten Liste
oder der Unterliste derselben kleiner sind als die vorbe
stimmte Größe. Wenn z. B. nach der ersten Partitionierung die
erste Unterliste der Liste dreißig Elemente hat und die
dritte Unterliste fünfzehn Elemente hat, wird die erste Un
terliste wiederum partitioniert. Die dritte Unterliste muß
nicht partitioniert werden, da ihre Größe kleiner ist als
die vorbestimmte Größe, die vorzugsweise zwanzig Elemente
ist. Sobald alle ersten und dritten Unterlisten (nach einer
oder mehreren Partitionierungen) eine Größe haben, die klei
ner ist als die vorbestimmte Größe, wird das Einfügesortier
verfahren aufgerufen 114, um alle ersten und dritten Unter
listen zu sortieren. Das Einfügesortierverfahren, das oben
bezugnehmend auf Fig. 5C erörtert wurde, ist wirksam, um die
Liste zu sortieren. Dies schließt das Sortieren der sequen
tiellen Liste ab.
Die Fig. 7A bis 7C sind Flußdiagramme, die die raumadap
tive stabile Dreifach-Partitionierung 110 zeigen.
Zuerst wird aufgrund eines Vergleichs der Größe der Liste 56
mit dem verfügbaren Speicherbetrag 54 eine Entscheidung 116
getroffen. Wenn der verfügbare Speicherbetrag 54 mindestens
so groß ist wie die Listengröße, muß sich die stabile Par
titionierungstechnik nicht selbst an den verfügbaren Spei
cherplatz anpassen. In diesem Fall folgt die Verarbeitung
den Operationen, die nachfolgend bezugnehmend auf Fig. 7C
erörtert sind.
Andererseits arbeitet die stabile Partitionierung unter
schiedlich, wenn der verfügbare Speicherbetrag 54 kleiner
ist als die Listengröße, so daß sie sich selbst an den
Speicherbetrag 54, der verfügbar ist, anpaßt. Zuerst wird
die Liste 56 halbiert 118. Wie bei dem ersten Ausführungs
beispiel wird die Teilung im allgemeinen Fall wiederholt
werden, bis der Bedingung des Blocks 116 genügt wird. Zur
Vereinfachung wird jedoch angenommen, daß nur eine Halbie
rung notwendig ist.
Als nächstes werden mehrere Zeiger initialisiert. Im spe
ziellen wird ein Zeiger P1 auf die Adresse des ersten
Elements in der ersten Unterliste eingestellt 120. Ein
Momentanplatzzeiger (CLP) wird auf den Wert von P1 einge
stellt 122. Zusätzlich wird ein Zeiger MEM-FRONT auf den
ersten Platz im verfügbaren Speicher 54 eingestellt 122. Ein
Zeiger MEM-REAR wird auf den letzten Platz im verfügbaren
Speicher 54 eingestellt 122.
Sobald die Zeiger initialisiert sind, werden die Elemente
einzeln mit dem Prädikat verglichen, welches das zufällig
ausgewählte 108 Element ist. Nun gibt es drei Ergebnisse des
Vergleichs, nämlich "-1", "0" oder "+1" oder <, = oder <,
wobei die letzteren hierin verwendet werden. Wenn die Ent
scheidung 124 feststellt, daß das Element bei P1 kleiner ist
als das Prädikat, wird das Element bei P1 an den Platz der
Unterliste, der durch CLP angezeigt wird, bewegt 126 und CLP
wird erhöht 128. Wenn die Entscheidung 130 feststellt, daß
das Element bei P1 gleich dem Prädikat ist, wird das Element
bei P1 zu dem Platz des MEM-FRONT des verfügbaren Speichers
54 bewegt 132, und MEM-FRONT wird erhöht 134. Wenn die Ent
scheidung 136 feststellt, daß das Element bei P1 größer ist
als das Prädikat, wird das Element bei P1 an den Platz des
MEM-REAR des verfügbaren Speichers 54 bewegt 138, und MEM-
REAR wird erniedrigt 140. Im Falle jeder dieser drei Ver
zweigungen, die für ein gegebenes Element aktiv ist, wird
danach der Zeiger P1 erhöht 142, um auf das Element, das als
nächstes verarbeitet werden soll, zu zeigen.
Als nächstes wird auf der Grundlage eines Vergleichs des
Zeigers P1 mit der Anzahl der Elemente in der Unterliste
eine Entscheidung 144 getroffen. Wenn der Vergleich anzeigt,
daß nicht alle Elemente in der Unterliste verarbeitet wur
den, wiederholt die Verarbeitung die Blöcke 124 bis 142, bis
alle Elemente in der Unterliste verarbeitet sind.
Sobald alle Elemente verarbeitet wurden, werden die Ele
mente, die in dem verfügbaren Speicher enthalten sind, be
ginnend mit dem Anfang des verfügbaren Speichers 54 und en
dend mit dem Platz MEM-FRONT-1 der Reihe nach auf die Unter
liste, beginnend an dem Platz des CLP, kopiert 146. Dann
werden die Elemente, die in dem verfügbaren Speicher enthal
ten sind, beginnend am Ende des verfügbaren Speichers 54 und
endend mit dem Platz MEM-REAR+1 in umgekehrter Reihenfolge
auf die Unterliste kopiert 148.
Als nächstes wird auf der Grundlage, ob beide Unterlisten
verarbeitet wurden, eine Entscheidung 150 getroffen. Wenn
nur die erste Unterliste verarbeitet wurde, wird der Zeiger
P1 auf die Adresse des ersten Elements in der zweiten Unter
liste eingestellt 152, und die Blöcke 122 bis 148 werden für
die zweite Unterliste wiederholt.
An diesem Punkt wurden beide Unterlisten einzeln partitio
niert. Um die gewünschte partitionierte Liste zu erhalten,
müssen diese partitionierten Unterlisten kombiniert werden.
Zuerst werden die ersten und zweiten Teile der zweiten Un
terliste mit dem dritten Teil der ersten Unterliste aus
getauscht 154. Danach wird der erste Teil der zweiten Unter
liste mit dem dritten Teil der ersten Unterliste ausge
tauscht 156. Es sei bemerkt, daß bei diesem Ausführungsbei
spiel zwei Austauschoperationen für die Dreifach-Partitio
nierung benötigt werden, wohingegen beim ersten Ausfüh
rungsbeispiel nur ein Austausch notwendig war.
Schließlich werden die Partitionierungszeiger für die par
titionierte Liste eingestellt 158. Da die Liste in drei
Teile partitioniert ist, werden zwei Zeiger benötigt, um die
Grenzen zwischen den Teilen anzuzeigen.
Obwohl das oben beschriebene Verfahren die Arbeitsweise der
raumadaptiven Technik beschreibt, arbeitet das zweite Aus
führungsbeispiel auch in dem Fall, in dem der verfügbare
Speicher 54 mindestens gleich der Größe der Liste 56 ist. In
diesem Fall muß die Liste 56 nicht geteilt oder andererseits
an die Größe des verfügbaren Speichers 54 angepaßt werden.
Nun arbeitet das Verfahren wie folgt. Die Entscheidung 116
leitet die Steuerung zu Block 160, wenn der verfügbare Spei
cherbetrag 54 mindestens so groß ist wie die Größe der Liste
56 (Fig. 7C). Zuerst werden Zeiger initialisiert. Im spe
ziellen wird der Zeiger P1 auf die Adresse des ersten Ele
ments in der Liste 56 eingestellt 160, CLP wird auf den Wert
von P1 eingestellt 160, der Zeiger MEM-FRONT wird auf den
ersten Platz des verfügbaren Speichers 54 eingestellt 160
und der Zeiger MEM-REAR wird auf den letzten Platz des ver
fügbaren Speichers 54 eingestellt 160.
Sobald die Zeiger initialisiert sind, werden die Elemente
einzeln mit dem Prädikat verglichen, welches das zufällig
ausgewählte 108 Element ist. Wie vorher gibt es drei Ergeb
nisse für den Vergleich, nämlich "-1", "0" oder "+1" oder <,
= oder <, wobei die letzteren hierin verwendet werden. Wenn
die Entscheidung 162 feststellt, daß das Element bei P1
kleiner als das Prädikat ist, wird das Element bei P1 an dem
Platz der Liste bewegt 164, der von CLP angezeigt wird, und
CLP wird erhöht 166. Wenn die Entscheidung 168 feststellt,
daß das Element bei P1 gleich dem Prädikat ist, wird das
Element bei P1 an dem Platz von MEM-FRONT des verfügbaren
Speichers 54 bewegt und MEM-FRONT wird erhöht 172. Wenn die
Entscheidung 174 feststellt, daß das Element bei P1 größer
ist als das Prädikat, wird das Element bei P1 an den Platz
von MEM-REAR des verfügbaren Speichers 54 bewegt, und MEM-
REAR wird erniedrigt 178. Im Falle jeder dieser Verzweigun
gen, die für ein gegebenes Element aktiv ist, wird danach
der Zeiger P1 erhöht 180, um auf das Element, das als näch
stes verarbeitet werden soll, zu zeigen.
Als nächstes wird auf der Grundlage eines Vergleichs des
Zeigers P1 mit der Anzahl der Elemente in der Liste 56 eine
Entscheidung 182 getroffen. Wenn der Vergleich anzeigt, daß
nicht alle Elemente in der Liste 56 verarbeitet wurden, wie
derholt die Verarbeitung die Blöcke 162 bis 180, bis alle
Elemente in der Liste verarbeitet wurden.
Sobald alle Elemente in der Liste 56 verarbeitet wurden,
werden die Elemente, die im verfügbaren Speicher enthalten
sind, beginnend mit dem Anfang des verfügbaren Speichers 54
und endend mit dem Platz MEM-FRONT-1, der Reihe nach auf die
Liste, beginnend am Platz des CLP, kopiert. Dann werden die
Elemente, die in dem verfügbaren Speicher enthalten sind,
beginnend am Ende des verfügbaren Speichers 54 und endend
mit dem Platz MEM-REAR+1 in umgekehrter Reihenfolge auf die
Liste 56 kopiert 186.
An diesem Punkt ist die Liste 56 partitioniert. Die Parti
tionierungszeiger werden für die partitionierte Liste ein
gestellt 188. Danach ist die Verarbeitung gemäß dem zweiten
Ausführungsbeispiel abgeschlossen.
Obwohl die obige Diskussion die Erfindung beschreibt, wobei
sie die Positionen (oder Elemente) in einer sequentiellen
Liste physikalisch bewegt, um die Liste zu sortieren (oder
eine sortierte Liste zu mischen), müssen die Objekte nicht
physikalisch bewegt werden, wenn die sequentielle Liste
selbst Zeiger umfaßt. Z.B. kann die sequentielle Liste ein
eindimensionales Array von Zeigern sein, die auf einzelne
Datenbankaufzeichnungen, die gespeichert werden sollen,
zeigen. Hier zeigen die Objekte der Liste auf den Speicher
platz (z. B. Aufzeichnung) der Elemente, die tatsächlich
sortiert oder gemischt werden.
In jedem Fall erreichen die raumadaptiven stabilen Misch-
und Sortier-Techniken gemäß der Erfindung substantielle
Geschwindigkeitsgewinne, wenn nur ein kleiner Betrag an
zusätzlichem Speicher verfügbar ist.
Claims (8)
1. Verfahren zum Anpassen einer Verarbeitungsoperation an
eine Speicherverfügbarkeit, wobei das Verfahren von ei
nem Datenverarbeitungssystem mit einem Speicher (4; 54)
durchgeführt wird, und wobei das Verfahren folgende
Merkmale aufweist:
- (a) Empfangen mindestens einer sequentiellen Liste (6, 8; 56) mit einer Listengröße;
- (b) Bestimmen eines Speicherbetrags, der zur Verwendung verfügbar ist;
- (c) Vergleichen (12; 62; 104) der Größe der zumindest einen sequentiellen Liste mit dem Speicherbetrag, der zur Verwendung verfügbar ist;
- (d) Teilen (14; 64; 108, 110) der zumindest einen se quentiellen Liste in Unterlisten auf der Grundlage des Vergleichs; und
- (e) Durchführen der Verarbeitungsoperation auf jeder der Unterlisten.
2. Verfahren gemäß Anspruch 1,
bei dem bei dem Empfangen (a) erste und zweite sortierte sequentielle Listen mit Listengrößen empfangen werden, bei dem Vergleichen (c) die Listengrößen mit dem Spei cherbetrag, der zur Verwendung verfügbar ist, verglichen werden (12), und beim Teilen (d) eine der sequentiellen sortierten Listen in eine erste und eine zweite Unter liste geteilt wird (14), wenn bei dem Vergleichen (c) festgestellt wird, daß die Größe beider sequentieller sortierter Listen den Speicherbetrag, der zur Verwendung verfügbar ist, überschreitet, und
bei dem die im Schritt (e) durchgeführte Verarbeitungs operation die erste und die zweite sequentielle sortier te Liste durch Segmentieren (16) der anderen sequentiel len sortierten Liste gemäß einem ausgewählten Element der zweiten Unterliste mischt, um eine dritte und eine vierte Unterliste zu bilden, und durch stabiles Mischen (20) der ersten und der dritten Unterliste unter Verwen dung des Speichers und durch stabiles Mischen (22) der zweiten und der vierten Unterliste unter Verwendung des Speichers, um eine gemischte Liste zu bilden.
bei dem bei dem Empfangen (a) erste und zweite sortierte sequentielle Listen mit Listengrößen empfangen werden, bei dem Vergleichen (c) die Listengrößen mit dem Spei cherbetrag, der zur Verwendung verfügbar ist, verglichen werden (12), und beim Teilen (d) eine der sequentiellen sortierten Listen in eine erste und eine zweite Unter liste geteilt wird (14), wenn bei dem Vergleichen (c) festgestellt wird, daß die Größe beider sequentieller sortierter Listen den Speicherbetrag, der zur Verwendung verfügbar ist, überschreitet, und
bei dem die im Schritt (e) durchgeführte Verarbeitungs operation die erste und die zweite sequentielle sortier te Liste durch Segmentieren (16) der anderen sequentiel len sortierten Liste gemäß einem ausgewählten Element der zweiten Unterliste mischt, um eine dritte und eine vierte Unterliste zu bilden, und durch stabiles Mischen (20) der ersten und der dritten Unterliste unter Verwen dung des Speichers und durch stabiles Mischen (22) der zweiten und der vierten Unterliste unter Verwendung des Speichers, um eine gemischte Liste zu bilden.
3. Verfahren gemäß Anspruch 2, bei dem das ausgewählte Ele
ment das erste Element in der zweiten Unterliste ist.
4. Verfahren gemäß Anspruch 2, bei dem die erste und die
zweite sortierte sequentielle Liste eine aneinander
angrenzende Eingabeliste bilden und das Verfahren die
Elemente in der Eingabeliste neu anordnet, um die sor
tierte Liste zu bilden.
5. Verfahren gemäß Anspruch 1,
bei dem beim Empfangen (a) eine sequentielle Liste (56) mit einer Listengröße empfangen wird,
bei dem die sequentielle Liste in erste und zweite Un terlisten geteilt wird (60) und danach bei dem Verglei chen (c) die Größe der Unterlisten mit dem Speicher betrag, der zur Verwendung verfügbar ist, verglichen wird (62),
bei dem beim Teilen (d) die Unterlisten in weitere Un terlisten geteilt werden (64), wenn beim Vergleichen (c) festgestellt wird, daß die Größe der Unterlisten den Betrag des Speichers, der zur Verwendung verfügbar ist, überschreitet, und
bei dem die in Schritt (e) durchgeführte Verarbeitungs operation die sequentielle Liste durch Sortieren jeder der Unterlisten, um sortierte Unterlisten zu erhalten, und durch stabiles Mischen (68) der Unterlisten, um eine sortierte Liste zu erhalten, stabil sortiert.
bei dem beim Empfangen (a) eine sequentielle Liste (56) mit einer Listengröße empfangen wird,
bei dem die sequentielle Liste in erste und zweite Un terlisten geteilt wird (60) und danach bei dem Verglei chen (c) die Größe der Unterlisten mit dem Speicher betrag, der zur Verwendung verfügbar ist, verglichen wird (62),
bei dem beim Teilen (d) die Unterlisten in weitere Un terlisten geteilt werden (64), wenn beim Vergleichen (c) festgestellt wird, daß die Größe der Unterlisten den Betrag des Speichers, der zur Verwendung verfügbar ist, überschreitet, und
bei dem die in Schritt (e) durchgeführte Verarbeitungs operation die sequentielle Liste durch Sortieren jeder der Unterlisten, um sortierte Unterlisten zu erhalten, und durch stabiles Mischen (68) der Unterlisten, um eine sortierte Liste zu erhalten, stabil sortiert.
6. Verfahren gemäß Anspruch 5, bei dem das Sortieren ein
Misch-Sortier-Verfahren ist.
7. Verfahren gemäß Anspruch 5, bei dem das Sortieren fol
gende Schritte aufweist: Teilen (78) einer der Unter
listen in Blöcke einer vorbestimmten Größe; Sortieren
(80) jedes der Blöcke unter Verwendung eines Einfüge
sortierverfahrens; und Mischen (82) der sortierten
Blöcke, um eine der sortierten Unterlisten zu erhalten.
8. Verfahren gemäß Anspruch 1,
bei dem bei dem Empfangen (a) eine sequentielle Liste (56) mit einer Listengröße empfangen wird,
bei dem bei dem Vergleichen (c) die Größe der Liste mit dem Speicherbetrag, der zur Verwendung verfügbar ist, verglichen wird (104),
bei dem die Teilung folgende Schritte aufweist, wenn beim Vergleichen festgestellt wird, daß die Größe der Liste den Speicherbetrag, der zur Verwendung verfügbar ist, überschreitet: Auswählen (108) eines Elements der Liste als ein Prädikat und stabiles Partitionieren (110) der Liste unter Verwendung des Prädikats, um drei Unter listen zu bilden,
bei dem die im Schritt (e) durchgeführte Verarbeitungs operation die sequentielle Liste durch stabiles Sortie ren (114) bestimmter der Unterlisten, die eine Größe aufweisen, die den Speicherbetrag, der zur Verwendung verfügbar ist, nicht überschreitet, wodurch eine sor tierte Liste erhalten wird, stabil sortiert.
bei dem bei dem Empfangen (a) eine sequentielle Liste (56) mit einer Listengröße empfangen wird,
bei dem bei dem Vergleichen (c) die Größe der Liste mit dem Speicherbetrag, der zur Verwendung verfügbar ist, verglichen wird (104),
bei dem die Teilung folgende Schritte aufweist, wenn beim Vergleichen festgestellt wird, daß die Größe der Liste den Speicherbetrag, der zur Verwendung verfügbar ist, überschreitet: Auswählen (108) eines Elements der Liste als ein Prädikat und stabiles Partitionieren (110) der Liste unter Verwendung des Prädikats, um drei Unter listen zu bilden,
bei dem die im Schritt (e) durchgeführte Verarbeitungs operation die sequentielle Liste durch stabiles Sortie ren (114) bestimmter der Unterlisten, die eine Größe aufweisen, die den Speicherbetrag, der zur Verwendung verfügbar ist, nicht überschreitet, wodurch eine sor tierte Liste erhalten wird, stabil sortiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15596693A | 1993-11-19 | 1993-11-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4438652A1 true DE4438652A1 (de) | 1995-05-24 |
Family
ID=22557498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19944438652 Withdrawn DE4438652A1 (de) | 1993-11-19 | 1994-10-28 | Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPH07191827A (de) |
DE (1) | DE4438652A1 (de) |
GB (1) | GB2284079A (de) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819376B2 (en) | 2012-04-23 | 2014-08-26 | Hewlett-Packard Development Company, L. P. | Merging arrays using shiftable memory |
CN103942200B (zh) * | 2013-01-18 | 2017-08-18 | 佳能株式会社 | 有序列表匹配方法和设备、文档字符匹配方法和设备 |
US9418089B2 (en) * | 2013-05-13 | 2016-08-16 | Microsoft Technology Licensing, Llc | Merging of sorted lists using array pair |
US10334011B2 (en) * | 2016-06-13 | 2019-06-25 | Microsoft Technology Licensing, Llc | Efficient sorting for a stream processing engine |
KR102368840B1 (ko) * | 2019-01-25 | 2022-03-02 | 한국전자기술연구원 | 커넥티드카 빅데이터 수집장치, 시스템 및 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1289451A (de) * | 1970-05-04 | 1972-09-20 | ||
GB1385893A (en) * | 1971-02-12 | 1975-03-05 | Honeywell Inf Systems | Sorting of data records |
GB1378982A (en) * | 1971-11-17 | 1975-01-02 | Ibm | Data processing apparatus |
US4962451A (en) * | 1985-11-07 | 1990-10-09 | International Business Machines Corporation | Cache-effective sort string generation method |
US5179699A (en) * | 1989-01-13 | 1993-01-12 | International Business Machines Corporation | Partitioning of sorted lists for multiprocessors sort and merge |
-
1994
- 1994-10-28 DE DE19944438652 patent/DE4438652A1/de not_active Withdrawn
- 1994-11-17 GB GB9423239A patent/GB2284079A/en not_active Withdrawn
- 1994-11-21 JP JP28642094A patent/JPH07191827A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB9423239D0 (en) | 1995-01-04 |
JPH07191827A (ja) | 1995-07-28 |
GB2284079A (en) | 1995-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69230452T2 (de) | Verfahren und Vorrichtung zur Änderungskontrolle in mehreren Entwicklungsumgebungen | |
DE3882772T2 (de) | Vektorprozessor angepasst zum Sortieren von Vektordaten. | |
DE3650156T2 (de) | Auf regeln basiertes datenwiederauffindverfahren und anordnung. | |
DE3750492T2 (de) | Datenbanksystem für Parallelprozessor. | |
DE69528896T2 (de) | Verfahren zur clusterbildung in multidimensional voneinander abhangigen daten | |
DE2554442C2 (de) | Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen | |
DE69636761T2 (de) | Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum | |
DE69527331T2 (de) | Datenwiedererfindungssystem, Datenverarbeitungssystem, Datenwiedererfindungsverfahren und Datenverarbeitungsverfahren | |
DE3344141C2 (de) | Vorrichtung zur Neuordnung von Elementen in eine gewünschte Reihenfolge | |
DE60118973T2 (de) | Verfahren zum abfragen einer struktur komprimierter daten | |
DE3506749A1 (de) | Matrixprozessor und steuerverfahren hierfuer | |
DE69026764T2 (de) | Verfahren zur Datenübertragung mit hoher Geschwindigkeit | |
DE2723523A1 (de) | Kompression und dekompression von gespeicherten digitaldaten | |
DE3688581T2 (de) | Sortierverfahren in einem hierarchisch geordneten Speichersystem. | |
DE3327379A1 (de) | Einrichtung und verfahren zum umordnen von datensaetzen | |
DE69130306T2 (de) | Steuerverfahren für die Vermeidung eines falschen Resets von einem allgemeinen Betriebsmittel und Mehrrechnersystem für die Ausführung des Verfahrens | |
DE2730328A1 (de) | Adressierbarer assoziativ-speicher | |
DE69607529T2 (de) | Kodierung von videofarbbildern | |
DE10056763B4 (de) | Generieren von Einschränkungsabfragen mit Hilfe von Tensordarstellungen | |
DE69327021T2 (de) | Dekodierschaltung für einen Kode variabler Länge | |
DE68913373T2 (de) | Verfahren zur gleichzeitigen Dateneingabe in überlappende Fenster. | |
DE602004008818T2 (de) | Verfahren zur Bezugnahme auf die Adresse von Vektordaten und Vektorprozessor | |
DE69629540T2 (de) | Verfahren und Gerät zum Sortieren von Elementen | |
DE69517887T2 (de) | Verfahren und System zum Herstellen von Verbindungen in einem Datenbanksystem | |
DE4438652A1 (de) | Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |