User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Programación en C++ Builder

 Arrays (Arrays)
 Zeiger
3. Beispiel Klasse in C + +
8. AnsiString Klasse Methoden
 C + +-Projekte
 Pakete, verteilen eine Anwendung ohne Installation
 Börse sortieren oder Blase
 Zeichenfolgenfunktionen string.h

Börse sortieren oder Blase

Blase Sortierung Methode basiert auf zwei aufeinander folgende Elemente aufeinander folgende Vergleiche und machen ein Austausch zwischen den Elementen bis zu, die bestellt werden.

Angenommen, der Vektor in der folgenden Tabelle gezeigt, zum Ausführen die Verwaltung haben folgen diese Paso:

  • Vergleicht die ersten beiden Elemente, wenn die zweite höher als die erste ist, sie sind nicht wie sie sind, aber wenn die erste die größte ist, ausgetauschten Elemente.
  • Wird dann verglichen, das zweite Element mit dem dritten durch die Anwendung der gleichen Kriterien wie der vorherige Schritt.
  • Ist auf diese Weise wiederholt den Vorgang im Vergleich zu allen Elementen, die den Vektor bilden. Wenn es erreicht das letzte Element ist das Element, das dem höchsten Wert gewesen und wurde am Ende des Vektors.
  • Finden Sie das zweite Element ist wiederholt die Betriebsführung der alle Elemente des Arrays mit Ausnahme der Last.
  • Bekräftigung des Prozess beschrieben, der Vektor bestellt im Vergleich nur die ersten beiden Elemente.

Erste Management.

Beispiel des Managements durch Blase zu finden die ersten Element.

Vektor Vergleich 1st 2. Vergleich 3rd Vergleich 4 Vergleich 5th Vergleich
V [1] 3 3 3 3 3 3
V [2] 34 34 1 1 1 1
V [3] 1 1 34 34 34 34
V [4] 53 53 53 53 15 15
V [5] 15 15 15 15 53 6
V [6] 6 6 6 6 6 53

in Pseudocó ausgedrückt-Management-ProzessIch sage strukturierte e:

 von j. ←-1 , n-1 tun Wenn Element [j] > Element [j + 1] dann intercambiar(elemento[j],_elemento[j+1]) Fin_si Fin_desde

für der Prozess für den Austausch von Elementen hat, eine zusätzliche Variable die folgenden forma zu verwenden:

 Aux ← V [j] V [j] ← V [j + 1] V [j + 1] ← Aux

Zweite Management.

Vektor 1st Management 1st Vergleich 2nd Vergleich 3rd Vergleich 4 Vergleich
V [1] 3 3 1 1 1 1
V [2] 34 1 3 3 3 3
V [3] 1 34 34 34 15 15
V [4] 53 15 15 15 34 6
V [5] 15 6 6 6 6 34
V [6] 6 53 53 53 53 53

Nach der zweiten Ordination der zwei größten Vektorelemente gefunden worden und sie haben sich am Ende des gleichen platziert.

Algorithmus der Blase.

Verallgemeinern des Prozess der Verwaltung ist erhält den folgenden Pseudocode strukturiert für den Algorithmus der Blase.

.

ich - Variable Ordinationen <br/> j - Variable Vergleiche <br/> n - Anzahl der Elemente im Vektor (c steht für den größten Index)

 Algorithmus Blase Hause / / Ordinationen da ich ← 1 bis n-1 tun / / Vergleiche von j ← 1 bis NI tun Wenn Element [j] > Element [j + 1] dann / / Exchange Elemente Aux ← V [j] V [j] ← V [j + 1] V [j + 1] ← Aux Fin_si Fin_desde Fin_desde Ende

Beispiel in c:

 V Int [] = {1, 3, 34, 53, 15, 6}; Int j, i, Aux;

/ / Management für (ich = 0; _i < 5; _i ++) {/ / Vergleiche für (j = 0; _j < 5-i; _j ++) {/ / Exchange Element wenn (V [j] _ > _v[j+1]) {Aux = V [j];}}}
		V [j] = V [j + 1];
		V [j + 1] = Aux;
		{{}}

Bekräftigung Sortierlösung erhalten Vektor sortiert, wie in der folgenden Tabla dargestellt:

Vektor 1st Management Management 2nd 3rd Verwaltung Management 4 5. Verwaltung
V [1] 3 3 1 1 1 <br/> 1
V [2] 34 1 3 3 3 3
V [3] 1 34 15 6 6 6
V [4] 53 15 6 15 15 15
V [5] 15 6 34 34 34 34
V [6] 6 53 53 53 53 53

Verwaltung der Blase verbessert.

, Wenn Sie die Tabelle der Arten betrachten, die wir beachten Sie, dass der Vektor im dritten Management, wird unnötig machen das vierte und fünfte Management, jedoch analysierten Blase Algorithmus führt alle Vergleiche von bis zu sortieren (n-1) bestellt wurde. Sie können erkennen, dass der Vektor ist ordentlich und unterbrechen die Ordinationen, wodurch verbessert die Leistung des Algorithmus. Wenn ein Management ist Wenn alle Vergleiche es wurde ein Austausch von Elementen ist es, weil der Vektor trägt. Ein Indikator, der Flagge oder Boolean-Variable kann verwendet werden, um das Ende des Managements zu erkennen

Mit dem folgende Algorithmus zeigt eine der Versionen optimiert Methode der Sortierung Blase.

ich - Variable Ordinationen <br/> j - Variable Vergleiche <br/> n - Anzahl der Elemente im Vektor (c steht für den größten Index) <br/> Ord - Indikator Variable des sortierten Vektor

 Algorithmus Burbuja2 Hause / / Ordinationen ich ← 1 / / start Ordinationen Ord ← 0 / / Anzeige des Vektors bestellt während Ord start = 0 tun Ord ← 1 / / Vergleiche von j ← 1 , n-ich machen Wenn Element [j] > Element [j + 1] dann / / Exchange Elemente Aux ← V [j] V [j] ← V [j + 1] V [j + 1] ← Aux Ord ← 0 Fin_si Fin_desde ich ← k Fin_mientras Ende

Beispiel c:

 Int [V] = {1, 3, 34, 53, 15, 6}; Int j, Aux; Int I = 0; Bool Ord = False;

/ / Ordinationen while(!ord) {/ / Vergleiche Ord = True;}
	für (j = 0; j < 5-i; j++) {Wenn (V [j] > v[j+1]) {/ / Exchange Elemente Aux = V [j];}}
			V [j] = V [j + 1];
			V [j + 1] = Aux;
			Ord = False;	{{/ / Indikator für sortiert Vektor}} ich ++;
}

Beispiel in C++ Builder:

 / / # include <vcl.h> # include <iostream.h> # include <conio.h> # pragma Hdrstop / / # Pragma Argsused Int main(int_argc,_char*_argv[]) {/ / Variable Int V [] = {1, 3, 34, 53, 15, 6}; Int j, Aux; Int ich = 0; Bool Ord = False;}

/ / Den Vektor für display (Int_n = 0; _n < 6; _n ++) {Cout << V [n] << "";}

/ / Ordinationen while(!ord) {/ / Vergleiche Ord = True;}
	für (j = 0; j < 5-i; j++) {Wenn (V [j] > v[j+1]) {/ / Exchange Elemente Aux = V [j];}}
			V [j] = V [j + 1];
			V [j + 1] = Aux;
			Ord = False;	{{/ / Indikator für sortiert Vektor}} ich ++;
} / / Display das Array sortiert Cout << Endl;
für (Int_n = 0; _n < 6; _n ++) {Cout << V [n] << "";}

getch();
return 0;
} / /-

Viele Autoren kritisieren die Sortiermethode für Blase aufgrund seiner niedrigen Ertrag und Desmerecida Bedeutung, obwohl ich diese Auffassung Teile, ist ein sehr einfaches System, das passt sich perfekt an seinem Atelier in Zentren der Bildung.

Andere Methoden gibt Management Auswahl oder Einfügemarke bietet bessere Ergebnisse, schnell (Quicksort), Shell und Merge-Management-Systeme sind die wirksamsten, bietet einige spektakuläre zurück, wenn es darum geht, Bestellung von Vektoren der großen Dimensionen.

Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |