Wie implementiere ich das Radix-Sortierprogramm am besten in C?



Dieser Artikel führt Sie in das Radix-Sortierprogramm in C ein und führt zum besseren Verständnis eine programmatische Demonstration durch.

In diesem Artikel werden Sie mit Radix Sort vertraut gemacht und erfahren, wie Sie Radix Sort implementieren in C. Folgende Hinweise werden in diesem Artikel behandelt:

Also fangen wir an,





In einfachen Worten bedeutet Sortieren, die gegebenen Elemente in einer systematischen Reihenfolge anzuordnen. Das Sortieren erfolgt in den meisten Algorithmen, da es die Suche erleichtert und den Algorithmus schließlich effizienter macht. In diesem Blog werden wir einen der häufig verwendeten Soring-Algorithmen verstehen, d. H. Die Radix-Sortierung.

Die Radix-Sortierung ist ein nicht vergleichender ganzzahliger Sortieralgorithmus. Die Sortierung erfolgt von Ziffer zu Ziffer, beginnend mit der niedrigstwertigen Ziffer (d. H. Der rechts vorhandenen Ziffer) bis zur höchstwertigen Ziffer (d. H. Der links vorhandenen Ziffer). Die Radix-Sortierung verwendet die Zählsortierung als Unterprogramm zum Sortieren.
Die Untergrenze für vergleichsbasierte Sortieralgorithmen (wie Heap-Sortierung, Schnellsortierung, Zusammenführungssortierung) ist & Omega (nLogn) und kann nicht über nLogn hinaus verbessert werden. Wenn wir über das Zählen der Sortierung sprechen, handelt es sich um einen linearen Zeitsortieralgorithmus mit O (n + k) Zeitkomplexität, bei dem der Bereich zwischen 1 und k liegt. Das Problem beim Zählen der Sortierung besteht nun darin, dass O (n2) benötigt wird, wenn die Elemente im Bereich von 1 bis n2 liegen.



Um ein Array mit Elementen zu sortieren, die in linearer Zeit zwischen 1 und n2 liegen, benötigen wir eine Radix-Sortierung. Die Radix-Sortierung sortiert die Array-Ziffer nach Ziffer, beginnend mit der niedrigstwertigen bis zur höchstwertigen Ziffer. Die Radix-Sortierung verwendet die Zählsortierung als Unterprogramm zum Sortieren.

Fahren Sie mit diesem Artikel über das Radix-Sortierprogramm in C fort.

Radix-Sortieralgorithmus

Führen Sie die folgenden Schritte für alle Ziffern aus, beginnend mit der niedrigstwertigen Ziffer rechts und in Richtung der höchstwertigen Ziffer links.



Wie benutzt man Logger in Java?

Sortieren Sie die Elemente mithilfe der Zählsortierung nach der aktuellen Ziffer.
Beispiel:

Ursprüngliches Array:
140, 65, 85, 110, 612, 54, 12, 86

Das Sortieren der niedrigstwertigen Ziffer, d. H. An der Stelle, ergibt

140, 110, 612, 12, 54, 65, 85, 86

HINWEIS: Da 612 vor 12 angezeigt wird und die Sortierung nur für eine Ziffer erfolgt, wird 612 nach dieser Iteration vor 12 angezeigt.

Das Sortieren nach der nächsten Ziffer, d. H. An der Stelle von 10s, ergibt:

110, 612, 12, 140, 54, 65, 85, 86

Das Sortieren nach der höchstwertigen Ziffer, d. H. An der Stelle der 100er, ergibt:

012, 054, 065, 085, 086, 110, 140, 612

Fahren Sie mit diesem Artikel über das Radix-Sortierprogramm in C fort.

Radix-Sortierprogramm In C.

Schauen Sie sich zuerst die Radix-Sortierfunktion an

Radix-Sortierfunktion:

void radixsort (int array [], int n) {// Ermitteln Sie die größte Zahl, um die maximale Anzahl von Stellen zu ermitteln. int m = getMax (Array, n) int dig // Die Zählsortierung wird für jede Stelle für (dig = 1) durchgeführt m / dig> 0 dig * = 10) countSort (Array, n, dig)}

Fahren Sie mit diesem Artikel über das Radix-Sortierprogramm in C fort.

Zählsortierfunktion:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Anzahl der Vorkommen in count [] für (i = 0 i) speichern= 0 i--) {Ausgabe [Anzahl [(Array [i] / dig)% 10] - 1] = Array [i] Anzahl [(Array [i] / dig)% 10] -} // Kopieren Sie die Ausgabe-Array an arr [], so dass arr [] jetzt // sortierte Zahlen gemäß der aktuellen Ziffer für (i = 0 i enthält)

Lassen Sie uns ein C-Programm schreiben, um die Radix-Sortierung zu implementieren.

Beispiel:

#include // Funktion zum Ermitteln der größten Zahl int getMax (int array [], int n) {int max = array [0] int i für (i = 1 i max) max = array [i] return max} // Funktion für Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Speichern Sie die Anzahl der Vorkommen in count [] für (i = 0) ich= 0 i--) {Ausgabe [Anzahl [(Array [i] / dig)% 10] - 1] = Array [i] Anzahl [(Array [i] / dig)% 10] -} // Kopieren Sie die Geben Sie das Array an arr [] aus, sodass arr [] jetzt // sortierte Zahlen gemäß der aktuellen Ziffer für (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Funktion zum Drucken des Arrays void enthält print (int arr [], int n) {int i für (i = 0 i

Ausgabe

Ausgabe-Radix-Sortierprogramm in C-Edureka

Nachdem Sie das obige Programm ausgeführt haben, hätten Sie das Radix-Sortierprogramm in C verstanden. Damit sind wir am Ende dieses Artikels über 'Quicksort in Java' angelangt. Wenn Sie mehr erfahren möchten, lesen Sie die , ein vertrauenswürdiges Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie für Kern- und fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.

Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.