Hoe het Radix Sort-programma in C het beste te implementeren?



Dit artikel laat je kennismaken met Radix Sort Program In C en volgt een programmatische demonstratie voor een beter begrip.

Dit artikel introduceert Radix Sort en vertelt je hoe je Radix Sort implementeert in C. De volgende punten worden in dit artikel behandeld,

Dus laten we beginnen,





In eenvoudige bewoordingen betekent sorteren het rangschikken van de gegeven elementen in een systematische volgorde. Sorteren wordt in de meeste algoritmen gedaan omdat het zoeken gemakkelijker maakt, wat het algoritme uiteindelijk efficiënt maakt. In deze blog zullen we een van de meest gebruikte soring-algoritmen, namelijk Radix-sortering, begrijpen.

Radix-sortering is een niet-vergelijkend algoritme voor het sorteren van gehele getallen. Het sorteert cijfer voor cijfer, beginnend bij het minst significante cijfer (d.w.z. cijfer aanwezig aan de rechterkant) tot het meest significante cijfer (d.w.z. cijfer aanwezig aan de linkerkant). Radix-sortering gebruikt telsortering als een subroutine om te sorteren.
De ondergrens voor op vergelijking gebaseerd sorteeralgoritme (zoals Heap-sortering, Quick Sort, Merge Sort) is & Omega (nLogn), en ze kunnen niet verder worden verbeterd dan nLogn. Als we het hebben over telsortering, is het een lineair tijd-sorteeralgoritme met O (n + k) tijdcomplexiteit, waarbij het bereik tussen 1 en k ligt. Het probleem met het tellen van de sortering is dat er O (n2) nodig is wanneer de elementen variëren van 1 tot n2.



Dus om een ​​array met elementen die in lineaire tijd variëren van 1 tot n2 te sorteren, hebben we radix-sortering nodig. Radix sorteert de array cijfer voor cijfer, beginnend bij het minst significante cijfer tot het meest significante cijfer. Radix-sortering gebruikt telsortering als een subroutine om te sorteren.

Verder gaan met dit artikel over Radix Sort Program in C,

Radix-sorteeralgoritme

Voer de volgende stappen uit voor alle cijfers, beginnend bij het minst significante cijfer rechts, en naar het meest significante cijfer links.



hoe je een tostring-methode schrijft

Sorteer de elementen met telsortering volgens het huidige cijfer.
Voorbeeld:

Originele matrix:
140, 65, 85, 110, 612, 54, 12, 86

Sorteren van het minst significante cijfer, d.w.z. op de plaats van iemand, geeft

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

verschil tussen hashmap en hashtabel

OPMERKING: Aangezien 612 vóór 12 verschijnt en het sorteren alleen voor één cijfer wordt gedaan, verschijnt 612 na deze iteratie vóór 12.

Sorteren op volgend cijfer, d.w.z. op 10s, geeft:

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

Sorteren op meest significante cijfer, d.w.z. aanwezig op de plaats 100, geeft:

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

Verder gaan met dit artikel over Radix Sort Program in C,

Radix sorteerprogramma in C

Kijk eerst naar de Radix-sorteerfunctie

Radix Sort-functie:

void radixsort (int array [], int n) {// Haal het grootste getal op om het maximale aantal cijfers te kennen int m = getMax (array, n) int dig // Telsortering wordt uitgevoerd voor elk cijfer voor (dig = 1 m / dig> 0 dig * = 10) countSort (array, n, dig)}

Verder gaan met dit artikel over Radix Sort Program in C,

Count Sort-functie:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Sla het aantal exemplaren op in count [] voor (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Kopieer de output array naar arr [], zodat arr [] now // gesorteerde getallen bevat volgens het huidige cijfer voor (i = 0 i

Laten we vooruitgaan en laten we een C-programma schrijven om Radix-sortering te implementeren.

Voorbeeld:

#include // Functie om het grootste getal te vinden int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Functie voor Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Bewaar het aantal keren dat in count [] voorkomt voor (i = 0 ik= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Kopieer de output array naar arr [], zodat arr [] now // gesorteerde getallen bevat volgens het huidige cijfer voor (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Functie om Array af te drukken leegte print (int arr [], int n) {int i voor (i = 0 i

Uitvoer

heap en stapel geheugen in java

Output- Radix sorteerprogramma in C- Edureka

Na het uitvoeren van het bovenstaande programma zou u het Radix Sort Program In C begrepen hebben. Zo zijn we aan het einde gekomen van dit artikel over ‘Quicksort in Java’. Als je meer wilt weten, bekijk dan de , een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.