Um einige Probleme effektiv zu lösen, ist es sehr wichtig, die Datenelemente an der richtigen Position anzuordnen Befehl. Eines der beliebtesten Permutationsprobleme ist das Problem der Elementreihenfolge. Das In diesem Artikel wird gezeigt, wie Array-Mitglieder in aufsteigender Reihenfolge sortiert werden (gemäß der Wert steigt weiter).
Um numerische oder nicht numerische Elemente in einer bestimmten Reihenfolge anzuordnen, gibt es viele Möglichkeiten In diesem Bereich können Sortieralgorithmen eingesetzt werden. Nur zwei einfache Sortiertechniken wird in diesem Artikel vorgestellt. Auswahlsortierung und Blasensortierung. Lassen Sie uns sie einzeln überprüfen Implementieren Sie Code individuell mit geeigneter Technologie und C++.
Eine der beliebtesten und unkompliziertesten Methoden zum Sortieren von Array-Komponenten ist Blasensortiermethode. Bei dieser Methode werden zwei Elemente nacheinander überprüft Überprüfen Sie, ob sie in der richtigen Reihenfolge sind. Wenn nicht, tauscht die Methode Elemente aus, bis sie vorhanden sind Die Reihenfolge ist korrekt. Gehen Sie danach nach rechts und wiederholen Sie den Vorgang mit der anderen Gruppe Werte. Einzelne Elemente werden am Ende an der richtigen erwarteten Position platziert Jede der mehreren Stufen der Blasensortiertechnologie. Schauen Sie sich die Blasensortierung an Algorithmus.
#includeusing namespace std; void display( int arr[], int n ){ for ( int i = 0; i < n; i++ ) { cout << arr[i] << ", "; } } void swap ( int &a, int &b ){ int temp = a; a = b; b = temp; } void solve( int arr[], int n ){ int i, j; for ( i = 0; i < n; i++ ) { for ( j = 0; j < n-1; j++ ) { if ( arr[j] > arr[ j+1 ] ) { swap( arr[j], arr[ j + 1 ] ); } } } } int main(){ int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84}; int n = sizeof( arr ) / sizeof( arr[0] ); cout << "Array before sorting: "; display(arr, n); solve( arr, n ); cout << "\nArray After sorting: "; display(arr, n); }
Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96,
Bei Verwendung der Auswahlsortierstrategie beginnen wir mit Index I und gehen bis zum Ende Finden Sie bei einem gegebenen Array das minimale oder maximale Element. Angenommen, wir sind es Zeigen Sie jede Zutat auf. Es lokalisiert das kleinste Element vom Index I bis zum Ende Platzieren Sie in jeder Phase die Elemente und wiederholen Sie den Vorgang Finden Sie das nächstgrößere Element aus Index I + 1 usw. Diese Phasen stehen kurz vor dem Abschluss, Dann wird das gesamte Array entsprechend sortiert.
#includeusing namespace std; void display( int arr[], int n ){ for ( int i = 0; i < n; i++ ) { cout << arr[i] << ", "; } } void swap ( int &a, int &b ){ int temp = a; a = b; b = temp; } int min_index( int arr[], int n, int s, int e ){ int min = 99999, min_ind = -1; for ( int i = s; i < e; i++ ) { if ( arr[i] < min ) { min = arr[i]; min_ind = i; } } return min_ind; } void solve( int arr[], int n ){ int i, j, ind; for ( i = 0; i < n; i++ ) { ind = min_index( arr, n, i, n ); if ( arr[i] > arr[ ind ] ) { swap( arr[i], arr[ ind ] ); } } } int main(){ int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84}; int n = sizeof( arr ) / sizeof( arr[0] ); cout << "Array before sorting: "; display(arr, n); solve( arr, n ); cout << "\nArray After sorting: "; display(arr, n); }
Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96,
Ein Grundproblem ist das Sortieren, bei dem es darum geht, Zahlen oder andere Gegenstände der Reihenfolge nach anzuordnen Vorgegebene Layout-Logik. Es gibt viele andere Sequenzierungstechniken in diesem Bereich, In diesem Artikel konzentrieren wir uns jedoch auf zwei, die einfach zu verwenden und zu verstehen sind. diese beiden Zu den Sortiertechniken gehören die Auswahlsortiertechnik und die Blasensortiertechnik. wir haben Verwenden Sie diese beiden Techniken, um den Datensatz in aufsteigender (nicht absteigender) Reihenfolge anzuordnen. Diese beiden Sortiertechniken sind zwar nicht sehr zeiteffizient, aber einfach. beide Beide Techniken erfordern einen Zeitaufwand von O(n2), wobei n ist eingeben. Solange beurteilt wird, ob eine Änderung stattgefunden hat, wird es in den nachfolgenden Phasen keine Änderung geben Es findet zu keinem Zeitpunkt ein Austausch statt, wodurch die Blasensortierung schneller erfolgt.
Das obige ist der detaillierte Inhalt vonC++-Programm: Array-Elemente in aufsteigender Reihenfolge sortieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!