C-Programm zur Auswahlsortierung
Selection Sort ist ein aggressiver Algorithmus, der die kleinste Zahl aus einem Array findet und an der ersten Position platziert. Das nächste zu durchlaufende Array beginnt am nächsten Index mit der kleinsten Zahl.
Nehmen wir ein Beispiel, um dieses Konzept deutlicher zu veranschaulichen.
Wir haben ein Array {6, 3, 8, 12, 9} und das kleinste Element in diesem Array ist 3. Also setzen wir 3 an die erste Position und danach sieht das Array wie folgt aus: {3, 6, 8, 12, 9} . Jetzt werden wir wieder die kleinste Zahl finden, aber dieses Mal werden wir die 3 bei der Suche nicht berücksichtigen, da sie an ihrer Stelle steht. Suchen Sie das nächstkleinere Element, 6, erstellen Sie ein Array mit 6 an der zweiten Position und durchsuchen Sie das Array erneut, bis das Array sortiert ist.
So funktioniert der Auswahlsortierungsalgorithmus –
Der Auswahlsortierungsalgorithmus folgt den folgenden Schritten:
Nehmen wir ein Array {20, 12, 23, 55,21}
-
Setzen Sie das erste Element des Arrays auf den Mindestwert .
Mindestwert = 20
-
Vergleichen Sie den Mindestwert mit dem nächsten Element und weisen Sie dieses Element als Mindestwert zu, wenn er kleiner als der Mindestwert ist. Tun Sie dies bis zum Ende des Arrays.
wird mit 12 : 20 > 12 verglichen, der Minimalwert = 12
wird mit 23 : 12 wird mit 55 verglichen: 12
wird mit 21 verglichen: 12
-
setzt den Minimalwert an die erste Position (Index 0) des Arrays.
Array = {12, 20,23, 55, 21}
-
Beginnen Sie für die nächste Iteration mit der Sortierung ab dem ersten unsortierten Element.
Array = {12, 20,23, 55, 21}
Beginnen Sie mit der Suche ab 20 und platzieren Sie als nächstes das Element mit dem Mindestwert.
Iteration 2:
Minimalwert = 20
im Vergleich zu 23: 20
im Vergleich zu 55: 20
im Vergleich zu 21: 20
Minimalwert bleibt unverändert,
Array = {12, 20,23, 55, 21}
Iteration 3:
Minimalwert = 23.
im Vergleich zu 55: 23
im Vergleich zu 21: 23 > 21, Mindestwert = 21
Mindestwert in Index verschoben = 2
Array = {12, 20, 21, 55, 23}
Iteration 4:
Minimum = 55
im Vergleich zu 23: 23
Minimum wurde auf Index 3 verschoben Array = { 12 , 20 , 21 , 23 , 55 }
Beispiel
#include <stdio.h> int main() { int arr[10]={6,12,0,18,11,99,55,45,34,2}; int n=10; int i, j, position, swap; for (i = 0; i < (n - 1); i++) { position = i; for (j = i + 1; j < n; j++) { if (arr[position] > arr[j]) position = j; } if (position != i) { swap = arr[i]; arr[i] = arr[position]; arr[position] = swap; } } for (i = 0; i < n; i++) printf("%d\t", arr[i]); return 0; }
Ausgabe
0 2 6 11 12 18 34 45 55 99
Das obige ist der detaillierte Inhalt vonC-Programm zur Auswahlsortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Nachfolgend finden Sie einen C-Sprachalgorithmus zum Konvertieren römischer Ziffern in Dezimalzahlen: Algorithmus Schritt 1 – Start Schritt 2 – Römische Ziffern zur Laufzeit lesen Schritt 3 – Länge: = strlen(roman) Schritt 4 – Für i=0 bis Länge-1 Schritt 4.1-switch(roman[i]) Schritt 4.1.1-case'm': &nbs

Der lexikografische Zeichenfolgenvergleich bedeutet, dass Zeichenfolgen in Wörterbuchreihenfolge verglichen werden. Wenn beispielsweise zwei Zeichenfolgen „apple“ und „appeal“ vorhanden sind, steht die erste Zeichenfolge an letzter Stelle, da die ersten drei Zeichen von „app“ identisch sind. Dann ist das Zeichen für die erste Zeichenfolge „l“ und in der zweiten Zeichenfolge ist das vierte Zeichen „e“. Da „e“ kürzer als „l“ ist, steht es an erster Stelle, wenn wir lexikografisch sortieren. Zeichenfolgen werden vor der Anordnung lexikografisch verglichen. In diesem Artikel werden wir verschiedene Techniken zum lexikografischen Vergleich zweier Zeichenfolgen mit C++ kennenlernen. Verwendung der Funktion „compare()“ in C++-Strings Das C++-String-Objekt verfügt über eine Funktion „compare()“

Hyperbelfunktionen werden mithilfe von Hyperbeln anstelle von Kreisen definiert und entsprechen gewöhnlichen trigonometrischen Funktionen. Es gibt den Verhältnisparameter in der hyperbolischen Sinusfunktion aus dem angegebenen Winkel im Bogenmaß zurück. Aber machen Sie das Gegenteil, oder anders gesagt. Wenn wir einen Winkel aus einem hyperbolischen Sinus berechnen wollen, benötigen wir eine umgekehrte hyperbolische trigonometrische Operation wie die hyperbolische Umkehrsinusoperation. In diesem Kurs wird gezeigt, wie Sie die hyperbolische Umkehrsinusfunktion (asinh) in C++ verwenden, um Winkel mithilfe des hyperbolischen Sinuswerts im Bogenmaß zu berechnen. Die hyperbolische Arkussinusoperation folgt der folgenden Formel -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Wo\:In\:ist\:natürlicher Logarithmus\:(log_e\:k)

Verknüpfte Listen verwenden eine dynamische Speicherzuweisung, d. h. sie wachsen und schrumpfen entsprechend. Sie werden als Ansammlungen von Knoten definiert. Hier besteht ein Knoten aus zwei Teilen: Daten und Links. Die Darstellung von Daten, Links und verknüpften Listen ist wie folgt: - Arten von verknüpften Listen Es gibt vier Arten von verknüpften Listen: - Einfach verknüpfte Liste / Einfach verknüpfte Liste Doppelt / Doppelt verknüpfte Liste Zirkuläre einfach verknüpfte Liste Zirkuläre doppelt verknüpfte Liste Wir Verwenden Sie die rekursive Methode, um die Länge der verknüpften Liste zu ermitteln. Die Logik lautet -intlength(node *temp){ if(temp==NULL) returnl;

Eine Karte ist ein spezieller Containertyp in C++, bei dem jedes Element ein Paar aus zwei Werten ist, nämlich einem Schlüsselwert und einem zugeordneten Wert. Der Schlüsselwert wird zum Indizieren jedes Elements verwendet, und der zugeordnete Wert ist der mit dem Schlüssel verknüpfte Wert. Unabhängig davon, ob der zugeordnete Wert eindeutig ist, ist der Schlüssel immer eindeutig. Um Kartenelemente in C++ zu drucken, müssen wir einen Iterator verwenden. Ein Element in einer Menge von Elementen wird durch ein Iteratorobjekt angegeben. Iteratoren werden hauptsächlich mit Arrays und anderen Arten von Containern (z. B. Vektoren) verwendet und verfügen über einen bestimmten Satz von Operationen, mit denen bestimmte Elemente innerhalb eines bestimmten Bereichs identifiziert werden können. Iteratoren können inkrementiert oder dekrementiert werden, um auf verschiedene Elemente in einem Bereich oder Container zu verweisen. Der Iterator zeigt auf den Speicherort eines bestimmten Elements im Bereich. Drucken einer Karte in C++ mit Iteratoren Schauen wir uns zunächst an, wie man definiert

Die Umbenennungsfunktion ändert den alten Namen einer Datei oder eines Verzeichnisses in den neuen Namen. Dieser Vorgang ähnelt dem Verschiebevorgang. Wir können diese Umbenennungsfunktion also auch zum Verschieben von Dateien verwenden. Diese Funktion ist in der Headerdatei der stdio.h-Bibliothek vorhanden. Die Syntax der Umbenennungsfunktion lautet wie folgt: intrename(constchar*oldname,constchar*newname); Die Funktion der rename()-Funktion akzeptiert zwei Parameter. Einer ist alter Name und der andere ist neuer Name. Beide Parameter sind Zeiger auf konstante Zeichen, die den alten und neuen Namen der Datei definieren. Gibt Null zurück, wenn die Datei erfolgreich umbenannt wurde; andernfalls wird eine Ganzzahl ungleich Null zurückgegeben. Während eines Umbenennungsvorgangs

Das Problem implementiert den euklidischen Algorithmus, um den größten gemeinsamen Teiler (GCD) und das kleinste gemeinsame Vielfache (LCM) zweier Ganzzahlen zu finden, und gibt die Ergebnisse mit einer gegebenen Ganzzahl aus. Lösung Die Lösung zur Implementierung des euklidischen Algorithmus zum Ermitteln des größten gemeinsamen Teilers (GCD) und des kleinsten gemeinsamen Vielfachen (LCM) zweier Ganzzahlen lautet wie folgt – die Logik zum Ermitteln von GCD und LCM lautet wie folgt – if (firstno*secondno!=0) { gcd= gcd_rec(firstno,secondno); printf("TheGCDof%dand%dis%d",

Strncmp ist eine vordefinierte Bibliotheksfunktion, die in der Datei string.h vorhanden ist und zum Vergleichen zweier Zeichenfolgen und zum Anzeigen der größeren Zeichenfolge verwendet wird. strcmp-Funktion (String-Vergleich) Diese Funktion vergleicht zwei Strings. Es gibt die ASCII-Differenz des ersten nicht übereinstimmenden Zeichens in den beiden Zeichenfolgen zurück. Syntax intstrcmp(string1,string2); Wenn die Differenz gleich Null ist, dann ist string1=string2. Wenn die Differenz positiv ist, ist string1>string2. Wenn die Differenz negativ ist, ist string1<string2. Beispiel für eine strncmp-Funktion Diese Funktion wird verwendet, um die ersten n Zeichen zweier Zeichenfolgen zu vergleichen. Syntaxstrn
