Come implementare al meglio il programma Radix Sort in C?



Questo articolo ti introdurrà al programma Radix Sort in C e seguirà una dimostrazione programmatica per una migliore comprensione.

Questo articolo ti presenterà Radix Sort e ti spiegherà come implementare Radix Sort in C. I seguenti suggerimenti saranno trattati in questo articolo,

Quindi iniziamo allora,





In parole semplici, ordinare significa disporre gli elementi dati in un ordine sistematico. L'ordinamento viene eseguito nella maggior parte degli algoritmi perché semplifica la ricerca, il che alla fine rende l'algoritmo efficiente. In questo blog capiremo uno degli algoritmi di smistamento comunemente usati, ovvero Radix sort.

L'ordinamento digitale è un algoritmo di ordinamento di interi non comparativi. Cita per cifra ordinamento a partire dalla cifra meno significativa (cioè la cifra presente a destra) alla cifra più significativa (cioè la cifra presente a sinistra). L'ordinamento radice utilizza il conteggio dell'ordinamento come subroutine per l'ordinamento.
Il limite inferiore per l'algoritmo di ordinamento basato sul confronto (come l'ordinamento di heap, l'ordinamento rapido, l'ordinamento di unione) è & Omega (nLogn) e non può essere migliorato oltre a nLogn. Se parliamo di conteggio dell'ordinamento, si tratta di un algoritmo di ordinamento temporale lineare con complessità temporale O (n + k), in cui l'intervallo è compreso tra 1 e k. Ora, il problema con il conteggio dell'ordinamento è che richiede O (n2) quando gli elementi vanno da 1 a n2.



Quindi, per ordinare un array con elementi che vanno da 1 a n2 in tempo lineare, abbiamo bisogno dell'ordinamento digitale. Radix sort ordina la cifra dell'array per cifra partendo dalla cifra meno significativa alla cifra più significativa. L'ordinamento radice utilizza il conteggio dell'ordinamento come subroutine per l'ordinamento.

Andando avanti con questo articolo sul programma Radix Sort in C,

Algoritmo di ordinamento della radice

Eseguire i seguenti passaggi per tutte le cifre partendo dalla cifra meno significativa presente a destra, procedendo verso la cifra più significativa presente a sinistra.



Ordina gli elementi utilizzando l'ordinamento conteggio in base alla cifra corrente.
Esempio:

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

Ordinando la cifra meno significativa, cioè al proprio posto, si ottiene

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

NOTA: poiché 612 appare prima di 12 e l'ordinamento viene eseguito solo per una cifra, quindi 612 appare prima di 12 dopo questa iterazione.

L'ordinamento per cifra successiva, ad es. Al decimo posto, fornisce:

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

L'ordinamento per cifra più significativa, cioè presente al posto delle 100, dà:

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

Andando avanti con questo articolo sul programma Radix Sort in C,

Programma di ordinamento della radice in C

Primo sguardo alla funzione di ordinamento Radix

Funzione Radix Sort:

void radixsort (int array [], int n) {// Ottieni il numero più grande per conoscere il numero massimo di cifre int m = getMax (array, n) int dig // L'ordinamento conteggio viene eseguito per ogni cifra per (dig = 1 m / dig> 0 dig * = 10) countSort (array, n, dig)}

Andando avanti con questo articolo sul programma Radix Sort in C,

Funzione di ordinamento conteggio:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Memorizza il conteggio delle occorrenze in count [] per (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Copia il restituisce l'array in arr [], così che arr [] ora // contiene numeri ordinati in base alla cifra corrente per (i = 0 i

Andando avanti, scriviamo un programma C per implementare l'ordinamento Radix.

Esempio:

#include // Funzione per trovare il numero più grande int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Funzione per Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Memorizza il conteggio delle occorrenze in count [] per (i = 0 io= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Copia il output array in arr [], in modo che arr [] ora // contenga numeri ordinati in base alla cifra corrente per (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Funzione per stampare array void print (int arr [], int n) {int i for (i = 0 i

Produzione

Output - Radix Sort Program in C- Edureka

Ora, dopo aver eseguito il programma di cui sopra, avresti capito il programma Radix Sort in C. Quindi siamo giunti alla fine di questo articolo su 'Quicksort in Java'. Se desideri saperne di più, dai un'occhiata al , una società di formazione online affidabile. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog e ti risponderemo il prima possibile.

framework basato su parole chiave in selenio