Die Funktion der einfachen Inklusion c. Sortieren Sie nach Array durch direkte Aufnahme. Das Verfahren des zweitürigen Einsatzes

Diese Methode wird beim Spielen von Karten weit verbreitet verwendet. Elemente (Karten) sind geistig in die bereits "fertige" Sequenz A 1, A 2, ..., AI -1 und dem "verbleibenden" (nicht sortierten) Teil: AI, AI +1, ..., a n.

Das Wesentliche des Verfahrens ist, dass mit jedem I-oh-Schritt (beginnend mit i \u003d 2) ein I-one-Element aus dem ungesalzenierten Teil entfernt wird und in dem "fertigen" Teil platziert wird, während er in den gewünschten Ort eingesetzt wird .

Textalgorithmus-Methode:

1. Beginn

2. Führen Sie die Schleife aus, bis ich Werte von 2 bis N hat,
Schritt \u003d 1:

a) Das i-ten Element (A (I)) wird in eine (0) -Zelle platziert;

b) Weisen Sie j \u003d -1, dh j ist j gleich der Anzahl des auf der linken Seite des Subjekts (i-th) angeordneten Elements und somit in der "fertigen" Sequenz;

c) Wenn ein (0) ≥ a (j), dann Element A (0) in Zelle A (J + 1) angeordnet ist, ansonsten Element a (j) in die Zelle A (J + 1), um das zu reduzieren Wert j pro Einheit und neu ausführen Artikel b).

In FIG. Fig. 1 zeigt ein Blockdiagramm eines geraden Eingliedungsverfahrens.

Die Methode arbeitet wie folgt: Auf dem I-OH-Schritt (beginnend mit i \u003d 2) wird das I-one-Element in einer freien Zelle platziert (z. B. A (0)). Dieses Element wird mit dem Element zum "fertigen" Teil der linken Seite verglichen. Wenn das Element A (0) weniger ist, verschiebt es sich nach rechts (J-tiges Element) in eine Position, wonach das nächste Element zum Vergleich genommen wird. Wenn das Element A (0) im Vergleich dazu als nicht weniger herausstellt, dann wird es an einem Ort platziert, der sofort am vergleichbaren Element steht.

Feige. 1. Sortierschema für direkte Inklusion

In FIG. 2 zeigt ein Beispiel, um durch direkte Einbeziehung zu sortieren.

Quellsequenz
A (0)
I \u003d 2.
I \u003d 3.
I \u003d 4.
I \u003d 5.
I \u003d 6.
I \u003d 7.
I \u003d 8.
Ergebnis

Feige. 2. Beispiel zum Sortieren durch direkte Eingliederung

Die Sortierung von Direkteinschluss ist für den Fall eher geeignet, wenn die sortierten Daten sequentiell ankommen (eines nach dem anderen).

Sortieren nach Direktwahl

Die Essenz der Methode ist wie folgt. Das kleinste Element im "verbleibenden" (unkorrigierten) Teil wird ausgewählt und variiert mit Orten mit dem ersten Element (im selben Nicht-Kernteil). Danach nimmt die Länge des unerwünschten Teils auf ein Element (an der ersten) ab, und der gesamte Prozess wird bereits mit (N-1) -Plätern, dann mit (N-2) -en usw., bis eine bleist, die größtes Element.

Dieses Verfahren ist in einem Sinn gegenüber dem direkten Einschlussverfahren entgegengesetzt. Bei der Direkteinschlussmethode wird nur ein nächstes Element in jedem Schritt berücksichtigt, und alle Objekte, die bereits "Fertig" sind, werden als Teil der Sequenz berücksichtigt, unter denen der Punkt der Einbeziehung dieses nächsten Elements gefunden wird. In der direkten Auswahlmethode, um nach einem (minimalen) Element zu suchen, sehen Sie alle Elemente des ungesalten Teils an, und dieses minimale Element wird als ein anderes Element im bereits "bereiten" Teil platziert.

Textalgorithmus-Methode:

1. Beginn

2. Führen Sie eine Schleife aus, bis ich von 1 bis n - 1 mache,
Schritt \u003d 1:

a) Positionieren Sie das aktuelle (i-th) -Element in einiger Zelle des Speichers (X) und erinnern Sie sich an die Sequenznummer (I) des aktuellen Elements (in der Variablen k);

b) Führen Sie eine Schleife aus, bis j Werte von i + 1 (d. H. aus dem folgenden i) bis n, schritt \u003d +1:

zykluskörper: Wenn x\u003e a (j), legen wir das Zell X-Element A (j) ein und erinnern Sie sich an seine Nummer in der Zelle zu;

c) Weisen Sie a (k) \u003d a (i) und a (i) \u003d x zu.

In FIG. 3 zeigt ein Beispiel für die Sortierung durch direkte Wahl.

Quellsequenz 44 06
I \u003d 1. 55 12
I \u003d 2. 55 18
I \u003d 3. 42 55
I \u003d 4. 94 44
I \u003d 5. 55 94
I \u003d 6. 94 67
I \u003d 7.

Feige. 3. Beispiel für Sortierung durch direkte Wahl

Zum Sortieren (Bestellen) aufsteigend oder abnehmende Werte im Array wurden viele Methoden entwickelt [Wirth, Knut. T 3]. Masse drei von ihnen, zählen, für die Definition, dass der erste n, n \u003d 6, die Elemente des Arrays x

Bei jedem nächsten I-Obwohl-Schritt, i \u003d 2, 3, ..., n-1, Wert aus (i + 1) -th-Array-Zelle, indem die Position mit einer Zahl aus den vorherigen Zellen austauschbar ist, um den Zellindex zu reduzieren bis es herausstellt, dass in der vorherigen Zelle eine kleinere Zahl vorliegt.

Aus dem Gesagten folgt, dass beim Implementieren des Direkteinschlussverfahrens der externe Zyklus durch N-1-Zeit durchgeführt werden sollte, und die maximal mögliche Anzahl der Durchführung des internen Zyklus, in dem Vergleiche und Permutation der Zahlen von 1 bis N verglichen werden sollten -1. Der innere Zyklus sollte jedoch so organisiert sein, dass er überhaupt nicht erreicht oder nicht erfüllt wird, wenn die Bedingung auftritt: Der Wert in der vorherigen Array-Zelle ist weniger als im Strom.

In unserem Beispiel:

Bei i \u003d 2 wird die Zahl 15 der Zelle X 3 sequentiell von Orten mit einer Zahl 34 der Zelle x 2 ausgetauscht, und dann mit einer Zahl 21 der Zelle x 1,

Bei i \u003d 4 wird die Zahl 25 der Zelle X 5 an Stellen mit einer Anzahl von 34 der Zelle x 3 ausgetauscht,

Unten ist ein Fragment des Bestellprogramms, um die ersten N-Elemente eines Arrays X durch das Renovierungsverfahren zu erhöhen (Einbeziehung mit der Auftragskontrolle).

    für i: \u003d 1 bis n-1 do

  1. während (x. 0) tun.

  2. R: \u003d x [j];

    X [j]: \u003d x;

    X: \u003d r;

Um die Zahlen in einem Array abzumachen, reicht es in jedem Schritt aus, um die Bedingung für die Permutation der Zahlen in den benachbarten Zellen des Arrays in das entgegengesetzte Zellen zu ändern, nämlich der Austausch von Einstellzellen wird im Fall, wenn der vorherige ist weniger als der Strom.

Direktaustauschmethode (Bubble-Methode).

Dieses Verfahren, wie der vorherige, basiert auf dem Austausch von Werten von benachbarten Array-Zellen, jedoch von dem ersten Schritt in einer konsistenten Analyse, wenn sie von einem Ende des Arrays in eine andere Analyse angeht, sind alle Paare benachbarter Arrayzellen beteiligt.

Im ersten Schritt werden konsistent für j \u003d n, n - 1, ..., 2 die Werte von benachbarten Array-Zellen verglichen und bei der Durchführungsbedingungen x j<Х j-1 выполняется их перестановка, в результате чего наименьшее число оказывается в ячейке Х 1 .

In unserem Beispiel sind nach dem ersten Schritt die Daten im Array wie folgt:

Bei jedem nächsten Schritt verringert sich die Anzahl der geprüften Zellenpaare um 1. Im allgemeinen Fall wird in jedem Schritt i \u003d 1, 2, 3, ..., n-1 der Prozess für j durchgeführt Von n bis i + 1, insbesondere mit i \u003d n-1 - nur einmal für N-O- und (N-1) -Bone-Zellen.

Von dem besagten folgt, dass bei der Implementierung des Direktaustauschverfahrens der externe Zyklus von N-1 durchgeführt werden muss, und die Anzahl des internen Zyklus ist in dem Körper, in dem die Vergleiche getroffen werden müssen, und die Zahlen, die die Zahlen nimmt N-1 bis 1.

Der Ursprung des Begriffs "Bubble Method" wird wie folgt erklärt: Wenn Sie das vertikale Array von Array-Zellen mit einer Erhöhung des Index von oben nach unten präsentieren, klettert die kleinste Anzahl der betrachteten nach oben, die als eine Blase in Wasser klettern.

In unserem Beispiel

Bei i \u003d 3 führen die Permutationen zum nächsten Zustand des Arrays

Bei Verwendung des Bubble-Verfahrens spielt es keine Rolle, in der Richtung der Erhöhung oder in Richtung der Reduzierung von Indizes, die Analyse von Zahlenpaaren in dem Array voranschreitet, und die Reihenfolge (aufsteigend oder abnehmen) wird nur durch den Zustand für die Permutation bestimmt der Zahlen (der kleinere sollte sich mehr oder umgekehrt absetzen).

Modifizierte Direktaustauschmethode (modifizierte Bubble-Methode).

Wie aus dem obigen numerischen Beispiel ersichtlich ist, ordnet das Array bereits nach dem vierten Schritt heraus, dh der Ausfall des externen Zyklus ist nicht n-1-Zeit, und weniger, wenn bekannt ist, dass das Array bereits ist bestellt. Eine solche Prüfung basiert auf den folgenden: Wenn bei der Durchführung des internen Zyklus keine einzige Permutation vorhanden ist, ist das Array bereits bestellt und kann den externen Zyklus verlassen. Als Merkmal wurde eine Permutation durchgeführt, eine Variable des booleschen Typs wird verwendet: Vor dem Eintritt in den Innenzyklus gibt es einen Wert, beispielsweise falsch, und wenn Sie eine Permutation durchführen, ist beispielsweise ein anderer, beispielsweise wahr.

Natürlich wird der Effekt bei der Verwendung eines modifizierten Blasenverfahrens im Vergleich zu einem nicht modifizierten Verfahren beim Beschleunigen des Sortiervorgangs beachtet, wenn die anfängliche Nummernfolge nahe an der gewünschten Richtung liegt. Wenn in dem einschränkenden Fall, wenn das Array bereits rechts bestellt ist, wird der Körper des externen Zyklus nur einmal durchgeführt.

Diese Methode wird beim Spielen von Karten weit verbreitet verwendet. Elemente (Karten) sind geistig in die "fertige" Sequenz A1 ... An und die ursprüngliche Reihenfolge von AI ... an. In jedem Schritt, beginnend mit i \u003d 2 und zunehmend i Jedes Mal pro Einheit, wird das i-ten Element aus der anfänglichen Sequenz entfernt und in die fertige Sequenz verschoben, während er in den richtigen Ort eingesetzt ist.

Das obige zeigt als ein Beispiel, der Sortiervorgang, indem er acht zufällig ausgewählte Zahlen eingeschaltet: Der Algorithmus für diese Sortierung ist:

Für i: \u003d 2 das n tue

die Einbeziehung von x an den entsprechenden Ort zwischen einem ... a [j];

In der echten Suche nach einem geeigneten Ort ist bequem wechselnde Vergleiche und Bewegungen in einer Sequenz, wie Sie x, dh x, mit dem nächsten Element AJ verglichen, und dann wird entweder X in einen freien Raum eingesetzt, oder die AJ-Verschiebungen (übertragen) rechts, und der Prozess "verlässt" links. Beachten Sie, dass der Satting-Prozess beim Durchführen eines der folgenden zwei verschiedenen Bedingungen enden kann:

1. fand ein Element AJ mit einem Schlüssel weniger als der Schlüssel bei H.

2. Das linke Ende der fertigen Reihenfolge ist erreicht.

Ein solcher typischer Fall eines wiederkehrenden Verfahrens mit zwei Terminierungsbedingungen ermöglicht es uns, einen bekannten Barriereempfang (Sentinel) zu verwenden. Hier ist es einfach, es anzuwenden, eine Barriere A0 mit dem Wert von H anzulegen (wir beachten, dass der Indexbereich in der Beschreibung der Variablen A bis 0 ... n erweitert wird.)

Analyse der Methode. Große Inklusion. Die Anzahl der Schlüssel (CI) -Kremente am I-OH-SIFT ist höchstens gleich i - 1, dem kleineren - 1; Wenn wir davon ausgehen, dass alle Permutationen der P-Tasten gleichermaßen gleich sind, ist die durchschnittliche Anzahl von Vergleiche I / 2. Die Nummer, dieselben Sendungen (Zuordnungen der Elemente) MI sind CI + 2 (einschließlich Barriere). Daher ist die Gesamtzahl der Vergleiche und die Anzahl der Sendungen wie folgt:

Speichern \u003d (N2 + N - 2) / 4,

CMAX \u003d (N2 + N - 4) / 4,

M min \u003d s * (n - 1),

M Ave \u003d (N2 + 9N - 10) / 4,

M max \u003d (n2 + 3n - 4) / 2.

Die Mindestschätzungen finden Sie im Fall einer bereits bestellten Quellquelle von Elementen, den schlechtesten Bewertungen - wenn sie ursprünglich in umgekehrter Reihenfolge angeordnet sind. In gewissem Sinne zeigt das Sortieren mit Einschlüssen ein wirklich natürliches Verhalten. Es ist klar, dass der angegebene Algorithmus den stetigen Sortiervorgang beschreibt: Die Reihenfolge der Elemente mit den gleichen Schlüsseln bleibt unverändert.

Der Algorithmus mit direkten Einschlüssen kann leicht verbessert werden, wenn Sie auf die Tatsache achten, dass die fertige Sequenz (A1 ... AI-1, die Sie ein neues Element einfügen müssen, bereits bestellt ist. Natürlich wohnen auf einer binären Suche, In dem ein Versuch verglichen mit der Mitte der fertigen Sequenz erfolgt. Und dann ist der Abteilungsverfahren in der Hälfte, bis der Einschlusspunkt gefunden wird. Ein derartiger modifizierter Sortieralgorithmus wird als Binäreinschlussmethode (Binäreintrag) bezeichnet.

Verfahren: Verfahren zur indirekten Messung der Feuchtigkeit von Substanzen basierend auf der Abhängigkeit der dielektrischen Konstante dieser Substanzen aus ihrer Luftfeuchtigkeit. Quelle: RMG 75 2004: State Supply System

BLUT - Blut, flüssige, füllende Arterien, Venen und Kapilate des Körpers und bestehend aus transparentem sich verjüngt. FLAS-Farben, die wir in it-förmigen Elementen suspendiert haben: rote Blutkörperchen oder rote Blutkörperchen, weiße oder Leukozyten und Blutkissen, oder ... Große medizinische Enzyklopädie

Die Eigenschaft - (Immobilien-) Definition von Immobilien, Immobilienarten, Vermietung und Verkauf von Immobilieninformationen zum Konzept der Immobilien, Immobilienarten, Vermietung und Verkauf von Immobilien, Steuer- und Versicherungsgehalt ist die Art der Immobilie , ... ... Enzyklopädie Investor.

Dieser Begriff hat auch andere Bedeutungen, siehe C. Siehe auch: C (Programmiersprache) C ++ Semantik: Multiparaadigmal: Objektorientiert, verallgemeinert, Prozedur, Metaprogrammierung Art der Ausführung: Kompiliert von ... Wikipedia

Bewertung von immateriellen Vermögenswerten - (Englisch-Immaterielle Vermögenswerte) - Ermittlung der Kosten der Unternehmensrechte an eine bestimmte Gruppe von Objekten, die während des von den nationalen ... ... ... ... ... ... Finanz- und Kredit-enzyklopädisches Wörterbuch

Allgemeine Bildung der Schule. - ucken Epinge. Institution, das Grundelement wird gebildet. Systeme. In dieser Kapazität sh. Forschung Subjekt. Disziplinen: Ped., Ost, Demografie., Soziologie und andere. Nur in der Pädagogik, die Probleme von SH. Besetzt ziemlich unabhängig. ein Ort. Studie ... ... Russische pädagogische Enzyklopädie.

zeit - 3.3.4 Zeit TE (Zeit TE): Heizzeit durch den anfänglichen Ausgangswechselstrom der Rotorwicklung oder des Stators von der Temperatur, die in der nominalen Betriebsart erreicht wird, auf eine zulässige Temperatur bei maximaler Umgebungstemperatur. Eine Quelle … Wörterbuch-Verzeichnis-Nutzungsbedingungen der regulatorischen und technischen Dokumentation

Gost R IEC 60204-1-2007: Sicherheit von Maschinen. Elektrische Ausrüstung von Maschinen und Mechanismen. Teil 1. Gemeinsame Anforderungen - Terminologie GOST R IEC 60204 1 2007: Maschinensicherheit. Elektrische Ausrüstung von Maschinen und Mechanismen. Teil 1. Allgemeine Anforderungen Originalbeleg: TN-Teststromsysteme gemäß Verfahren 1 gemäß 18.2.2 kann für jede Kette durchgeführt werden ... ... Wörterbuch-Verzeichnis-Nutzungsbedingungen der regulatorischen und technischen Dokumentation

auto - 3.3.1 Automatischer Sampler (automatischer Sampler): Ein Gerät, das verwendet wird, um die repräsentative Probe von durch die Pipeline fließenden Flüssigkeit zu extrahieren. Hinweis Automatischer Sampler besteht normalerweise aus Sonde (Sonde), Extraktoren ... ... Wörterbuch-Verzeichnis-Nutzungsbedingungen der regulatorischen und technischen Dokumentation

stromspannung - 3.10 Spannung: Das Verhältnis der Zugkraft in die Querschnittsfläche des Links in ihren Nenngrößen.

Erforderliche Definitionen und Klassifizierung der Sortierung.

Sortierung. Erforderliche Definitionen und Klassifizierung der Sortierung. Sortieren Sie die Vorwärtsaufschlusheit und Auswahl. Ihre Wirksamkeit.

Sortierung - Dies ist der Speicherort der Daten im Speicher regelmäßig auf ihren Tasten. Bei der Verarbeitungsdaten ist es also wichtig, das Dateninformationsfeld zu kennen und sie in die Maschine zu legen. Daher unterscheiden innen (Sortierung in RAM) und externe Sortierung (Im externen Speicher sortieren). Regelmäßigkeit Der Ort der Elemente ist eine Erhöhung (Abnahme) des Schlüsselwerts von Anfang an bis zum Ende im Array.

Wenn die sortierten Aufzeichnungen eine große Menge Speicher einstellen, erfordert ihre Bewegung hohe Kosten. Um sie zu reduzieren, verwenden Sie adress-Tabellensortiermethode. Diese Methode wird in verwendet schlüsseladressen Tabelle.. Erzeugen Sie die Umlagerung von Zeigern, d. H. Das Array selbst bewegt sich nicht. Beim Sortieren können sich die gleichen Tasten treffen. In diesem Fall sind die gleichen Tasten wünschenswert, um nach dem Sortieren in derselben Reihenfolge wie in der Quelldatei zu sortieren. Dieses Prinzip wird für verwendet nachhaltige Sortierung.

Die Effizienz der Sortierung kann aus mehreren Kriterien betrachtet werden:

1) Zeit für die Sortierung;

2) die Menge des zum Sortieren erforderlichen RAM;

3) Die vom Programmierer verbrachte Zeit, um ein Programm zu schreiben.

Die für die Sortierung aufgewendete Zeit ist proportional zur Menge an Vergleiche beim Sortieren und der Anzahl der Bewegungen der Elemente.

Es wird angenommen, dass die Reihenfolge der Anzahl der Vergleiche beim Sortieren innerhalb von oh (nlogn) Vor o (n 2)wo auf) - perfekter und unerreichbarer Fall.

Sortiermethoden können wie folgt klassifiziert werden:

1) strenge (gerade) Methoden (Ihre Wirksamkeit ist ungefähr gleich):

· direkte Inklusion.;

· direktwahl;

· direkter Austausch;

2) Verbesserte Methoden.

Im Leben ist das Prinzip dieser Sortierung bei der Platzierung von Solitairen, der Reinigung der Wohnung vorhanden, wenn es notwendig ist, ein Bündel gemischter Dinge in fälliger Reihenfolge usw. anzuordnen usw. Eine sehr natürliche Art der Sortierung wurde auf die Rationalisierung von Daten angewendet.

Elemente sind geistig in eine fertige Reihenfolge unterteilt. a 1, ..., A I-1 und Source-Sequenz. In der fertigen Reihenfolge befinden sich Elemente in einer bestimmten Reihenfolge (absteigend oder aufsteigend). In der ursprünglichen Reihenfolge gibt es Elemente, die sortiert werden müssen. Bei jedem Schritt werden die Elemente der anfänglichen Reihenfolge um eins reduziert, und der fertige erhöht um eins. Dies ist darauf zurückzuführen, dass aus der anfänglichen Reihenfolge extrahiert wird iCH-es ist Element und verschoben in die fertige Sequenz, während es unter den Elementen der fertigen Sequenz in den gewünschten Ort eingesetzt ist.

Betrachten Sie ein Beispiel, um durch das Verfahren der direkten Einbeziehung auf die Folge von Elementen zu sortieren: 10, 3, 11, 8, 2, 15, 44, 9 (Tabelle 11.1). Es ist notwendig, es aufsteigend zu sortieren.

Zunächst hat die fertige Sequenz keine Elemente. Im ersten Schritt ist das erste Element der Sourcesequenz 10, wird das erste Element der fertigen Sequenz. Als nächstes wird der zweite Schritt: Das Element 3 aus der Source-Sequenz wird in der Bereitschaft eingesetzt. Das passiert so. Wenn das Element größer als 10 ist, bleibt es an seiner Stelle, und wenn weniger, dann 10 Schichten pro Einheit nach rechts und ein Element an seiner Stelle. Seit 3.<10, то готовая последовательность теперь будет иметь вид: 3, 10, а исходная – 11, 8, 2, 15, 44, 9. Далее на третьем шаге из исходной последовательности выбирается 11 и помещается в готовую последовательность. Сначала 11 сравнивается с 10, и так как 11>10, dann bleibt 11 an Ort und Stelle. Die anfängliche Reihenfolge ist nun gleich: 8, 2, 15, 44, 9. Nachfolgende Schritte werden auf dieselbe Weise hergestellt.

Tabelle 11.1.

Prinzip des Betriebs der Sortierung durch direkte Inklusion

Die Anzahl der Schritte in dieser Sortierung (Tabelle 11.1) ist gleich der Anzahl der Elemente in der sortierten Sequenz, d. H. 8 Schritte \u003d 8 Elemente.

Es gibt zwei Möglichkeiten, diese Methode umzusetzen - dies ist ohne Barriere (Abb. 11.1) und mit einer Barriere (Abb. 11.2).

Fortsetzung des Themas:
Smartphone

Konfigurieren und aktivieren Sie einen speziellen AHCI-Modus, der vorzugsweise jedem Benutzer, der erheblich erweitern möchte, und gleichzeitig die Fähigkeiten Ihres PCs zur Arbeit mit ...