Hvordan implementerer jeg Radix Sorteringsprogram best i C?



Denne artikkelen vil introdusere deg for Radix Sort Program In C og følge det opp en programmatisk demonstrasjon for bedre forståelse.

Denne artikkelen vil introdusere deg for Radix Sort og fortelle deg hvordan du implementerer Radix Sort i C. Følgende tips vil bli dekket i denne artikkelen,

Så la oss komme i gang da,





Med enkle ord betyr sortering å ordne de gitte elementene i en systematisk rekkefølge. Sortering gjøres i de fleste algoritmer fordi det gjør søk enklere, noe som til slutt gjør algoritmen effektiv. I denne bloggen vil vi forstå en av de mest brukte soringalgoritmene, dvs. Radix-sortering.

Radix sort er en ikke-komparativ algoritme for heltalssortering. Den sorterer siffer for siffer fra minst signifikant siffer (dvs. siffer tilstede til høyre) til mest siffer (dvs. siffer til stede til venstre). Radix-sortering bruker tellesortering som en underrutine for å sortere.
Den nedre grensen for sammenligningsbasert sorteringsalgoritme (som Heap sort, Quick Sort, Merge Sort) er & Omega (nLogn), og de kan ikke forbedres utover nLogn. Hvis vi snakker om tellesortering, er det en lineær tidssorteringsalgoritme med O (n + k) tidskompleksitet, der området ligger mellom 1 og k. Nå er problemet med tellesortering at det tar O (n2) når elementene varierer fra 1 til n2.



Så for å sortere en matrise med elementer som varierer fra 1 til n2 i lineær tid, trenger vi radiksortering. Radix sorterer sortering av siffer siffer etter siffer fra minst signifikant siffer til mest siffer. Radix-sortering bruker tellesortering som en underrutine for å sortere.

Fortsetter med denne artikkelen om Radix Sort Program In C,

Radix sorteringsalgoritme

Utfør følgende trinn for alle sifrene som starter fra det minst betydningsfulle tallet som er tilstede i høyre, og beveger deg mot det viktigste tallet som er til stede i venstre.



Sorter elementene ved hjelp av tellesortering etter gjeldende siffer.
Eksempel:

Original Array:
140, 65, 85, 110, 612, 54, 12, 86

Sortering av det minst betydningsfulle sifferet, dvs. på ens sted, gir

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

MERKNAD: Ettersom 612 vises før 12, og sorteringen bare utføres for ens tall, vises 612 før 12 etter denne iterasjonen.

Sortering etter neste siffer, dvs. på 10-tallet, gir:

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

Sortering etter mest siffer, dvs. til stede på 100-tallet, gir:

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

Fortsetter med denne artikkelen om Radix Sort Program In C,

Radix Sorteringsprogram I C

Se først på Radix sorteringsfunksjon

Radix Sorteringsfunksjon:

void radixsort (int array [], int n) {// Få det største tallet for å kjenne maksimalt antall sifre int m = getMax (array, n) int dig // Counting sort utføres for hvert siffer for (dig = 1 m / dig> 0 dig * = 10) countSort (array, n, dig)}

Fortsetter med denne artikkelen om Radix Sort Program In C,

Antall sorteringsfunksjon:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Lagre antall forekomster i count [] for (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Kopier output array til arr [], slik at arr [] nå // inneholder sorterte tall i henhold til gjeldende siffer for (i = 0 i

La oss gå videre, la oss skrive et C-program for å implementere Radix-sortering.

Eksempel:

#include // Funksjon for å finne det største antallet int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Funksjon for Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Lagre antall forekomster i count [] for (i = 0 Jeg= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Kopier output array to arr [], slik at arr [] now // inneholder sorterte tall i henhold til gjeldende siffer for (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Funksjon for utskrift Array void skriv ut (int arr [], int n) {int i for (i = 0 i

Produksjon

Utgang- Radix Sorteringsprogram i C- Edureka

Nå etter å ha utført ovennevnte program, ville du ha forstått Radix Sort-programmet i C. Dermed har vi kommet til slutten av denne artikkelen om ‘Quicksort in Java’. Hvis du ønsker å lære mer, sjekk ut , et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

kaste en dobbel til en int java

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.