Cum se implementează cel mai bine programul de sortare Radix în C?



Acest articol vă va prezenta programul de sortare Radix în C și va urmări o demonstrație programatică pentru o mai bună înțelegere.

Acest articol vă va prezenta Radix Sort și vă va spune cum să implementați Radix Sort în C. Indicațiile următoare vor fi tratate în acest articol,

Deci, hai să începem atunci,





cum se poate termina un program Java

În cuvinte simple, sortarea înseamnă aranjarea elementelor date într-o ordine sistematică. Sortarea se face în majoritatea algoritmilor, deoarece facilitează căutarea, ceea ce în cele din urmă eficientizează algoritmul. În acest blog vom înțelege unul dintre algoritmii de soring frecvent utilizați, adică sortarea Radix.

Sortarea Radix este un algoritm de sortare fără număr întreg. Se face sortarea cifră cu cifră începând de la cea mai puțin semnificativă cifră (adică cifră prezentă la dreapta) până la cea mai semnificativă cifră (adică cifră prezentă la stânga). Sortarea Radix folosește sortarea de numărare ca subrutină pentru sortare.
Limita inferioară pentru algoritmul de sortare bazat pe comparație (cum ar fi sortarea Heap, sortarea rapidă, sortarea Merge) este & Omega (nLogn) și nu poate fi îmbunătățită dincolo de nLogn. Dacă vorbim despre numărarea sortării, este un algoritm liniar de sortare a timpului cu complexitate de timp O (n + k), unde intervalul se află între 1 și k. Acum, problema cu numărarea sortării este, este nevoie de O (n2) când elementele variază de la 1 la n2.



Deci, pentru a sorta o matrice cu elemente care variază de la 1 la n2 în timp liniar, avem nevoie de sortare radix. Sortarea Radix sortează matricea cifră cu cifră începând de la cea mai mică cifră la cea mai semnificativă. Sortarea Radix folosește sortarea de numărare ca subrutină pentru sortare.

Mai departe cu acest articol despre programul de sortare Radix în C,

Algoritmul de sortare Radix

Efectuați pașii următori pentru toate cifrele începând de la cea mai puțin semnificativă cifră prezentă în dreapta, trecând spre cea mai semnificativă cifră prezentă în stânga.



Sortați elementele folosind sortarea de numărare în funcție de cifra curentă.
Exemplu:

Tablou original:
140, 65, 85, 110, 612, 54, 12, 86

Sortarea cifrei mai puțin semnificative, adică la locul cuiva, dă

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

NOTĂ: Deoarece 612 apare înainte de 12, iar sortarea se face numai pentru o cifră, astfel 612 apare înainte de 12 după această iterație.

Sortarea după cifra următoare, adică la locul 10s, oferă:

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

Sortarea după cea mai semnificativă cifră, adică prezentă la locul 100, dă:

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

Mai departe cu acest articol despre programul de sortare Radix în C,

Program de sortare Radix în C

Mai întâi uită-te la funcția de sortare Radix

Funcția de sortare Radix:

void radixsort (int array [], int n) {// Obțineți cel mai mare număr pentru a cunoaște numărul maxim de cifre int m = getMax (array, n) int dig // Sortarea numărării se efectuează pentru fiecare cifră pentru (dig = 1 m / dig> 0 dig * = 10) countSort (matrice, n, dig)}

Mai departe cu acest articol despre programul de sortare Radix în C,

Funcție de sortare numărare:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Stocați numărul de apariții în count [] pentru (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Copiați ieșire matrice la arr [], astfel încât arr [] acum // conține numere sortate în funcție de cifra curentă pentru (i = 0 i

Înainte, să scriem un program C pentru a implementa sortarea Radix.

Exemplu:

diferența dintre mutabil și imuabil
#include // Funcția pentru a găsi cel mai mare număr int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Funcție pentru Count sortare void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Stocați numărul de apariții în count [] pentru (i = 0 eu= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Copiați ieșire matrice la arr [], astfel încât arr [] acum // conține numere sortate în funcție de cifra curentă pentru (i = 0 i 0 dig * = 10) countSort (matrice, n, dig)} // Funcția pentru a imprima matricea void print (int arr [], int n) {int i for (i = 0 i

Ieșire

Ieșire - Program de sortare Radix în C- Edureka

Acum, după executarea programului de mai sus, ați fi înțeles programul de sortare Radix în C. Astfel am ajuns la sfârșitul acestui articol despre „Quicksort în Java”. Dacă doriți să aflați mai multe, consultați , o companie de învățare online de încredere. Cursul de formare și certificare Java J2EE și SOA Edureka este conceput pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate Java, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog și vă vom contacta cât mai curând posibil.