Kuidas kõige paremini rakendada Radixi sortimisprogrammi C-s?

Selles artiklis tutvustatakse teile Radixi sortimisprogrammi C-s ja järgitakse selle paremaks mõistmiseks programmilist tutvustust.

Selles artiklis tutvustatakse teile Radix Sort'i ja selgitatakse, kuidas Radix Sort'i rakendada C. Selles artiklis käsitletakse järgmisi näpunäiteid,



Alustagem siis



Lihtsamalt öeldes tähendab sorteerimine etteantud elementide korraldamist süstemaatilises järjekorras. Sorteerimine toimub enamikus algoritmides, kuna see muudab otsingu lihtsamaks, mis muudab algoritmi lõpuks tõhusaks. Selles ajaveebis mõistame ühte levinumat sorteerimisalgoritmi, st Radixi sortimist.

Radix sort on mittevõrdlev täisarvude sorteerimise algoritm. See sorteerib numbreid numbrite kaupa, alustades kõige vähemtähtsast numbrist (st paremal olevast numbrist) kuni kõige olulisema numbrini (st vasakul olev number). Radix sort kasutab sortimiseks alamprogrammina loendussorteerimist.
Võrdluspõhise sortimisalgoritmi (näiteks kuhja sortimine, kiire sortimine, ühendamise sortimine) alumine piir on & Omega (nLogn) ja neid ei saa nLognist kaugemale parandada. Kui me räägime sortimise loendamisest, siis on see O (n + k) aja keerukusega lineaarne aja sorteerimise algoritm, kus vahemik jääb vahemikku 1 kuni k. Nüüd on sorteerimise loendamise probleemiks see, et elementide vahemikus 1 kuni n2 kulub O (n2).



Niisiis, massiivi sorteerimiseks elementidega, mis jäävad vahemikku 1 kuni n2 lineaarses ajas, vajame radikside sortimist. Radix sort sorteerib massiivi numbri numbri järgi, alustades kõige vähem olulisest numbrist kõige olulisema numbrini. Radix sort kasutab sortimiseks alamprogrammina loendussorteerimist.

Selle artikliga edasi liikumine Radixi sortimisprogrammi C-s,

Radixi sortimisalgoritm

Tehke järgmised toimingud kõigi numbrite jaoks, alustades paremal olevast vähemtähtsast numbrist, liikudes vasakpoolse kõige olulisema numbri suunas.



Sorteerige elemendid, kasutades loendussorteerimist vastavalt praegusele numbrile.
Näide:

topeltvalu int java

Algne massiiv:
140, 65, 85, 110, 612, 54, 12, 86

Vähim olulise numbri, s.t ühe koha järgi sorteerimine annab

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

MÄRKUS. Kuna 612 ilmub enne 12 ja sortimine toimub ainult ühe numbri jaoks, kuvatakse 612 pärast seda iteratsiooni enne 12.

Järgmise numbri järgi, s.o kümnenda koha järgi sorteerimine annab:

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

Sorteerimine kõige olulisema numbri järgi, st 100-ndate kohtade järgi, annab:

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

esimese otsingu algoritmi pseudokood

Selle artikliga edasi liikumine Radixi sortimisprogrammi C-s,

Radixi sortimisprogramm C-s

Kõigepealt vaadake Radixi sortimisfunktsiooni

hashmapi juurutamine Java näites

Radixi sortimise funktsioon:

void radixsort (int array [], int n) {// Hankige kõige suurem arv, et teada saada maksimaalset arvu numbreid int m = getMax (massiiv, n) int dig // Loendamissorteerimine tehakse iga numbri jaoks (dig = 1 m / dig> 0 dig * = 10) count Sorteeri (massiiv, n, dig)}

Selle artikliga edasi liikumine Radixi sortimisprogrammi C-s,

Loendamise funktsioon:

void countSort (int massiiv [], int n, int dig) {int väljund [n] int i, arv [10] = {0} // Salvesta esinemiste arv loendis [], kui (i = 0 i= 0 i--) {väljund [loenda [(massiiv [i] / dig)% 10] - 1] = massiiv [i] loota [(massiiv [i] / dig)% 10] -} // Kopeeri väljundmassiiv arr [] -ni, nii et arr [] nüüd // sisaldab sorteeritud numbreid vastavalt (i = 0 i

Edasi liikudes kirjutame Radixi sortimise rakendamiseks C-programmi.

Näide:

#include // Funktsioon suurima arvu leidmiseks int getMax (int massiiv [], int n) {int max = massiiv [0] int i jaoks (i = 1 i max) max = massiiv [i] return max} // Funktsioon Count sort void countSort (int massiiv [], int n, int dig) {int väljund [n] int i, count [10] = {0} // Salvesta esinemiste arv loendis [], kui (i = 0 i= 0 i--) {väljund [loenda [(massiiv [i] / dig)% 10] - 1] = massiiv [i] loota [(massiiv [i] / dig)% 10] -} // Kopeeri väljundmassiiv arr-le [], nii et arr [] nüüd // sisaldab sorteeritud numbreid vastavalt praegusele numbrile (i = 0 i 0 dig * = 10) countSort (massiiv, n, dig)} // Funktsioon massiivi printimiseks tühine print (int arr [], int n) {int i jaoks (i = 0 i

Väljund

Väljund - Radixi sortimisprogramm C- Edurekas

Pärast ülaltoodud programmi käivitamist oleksite aru saanud Radixi sortimisprogrammist C. Seega oleme jõudnud selle artikli lõppu teemal ‘Quicksort in Java’. Kui soovite rohkem teada saada, vaadake järgmist , usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java-põhimõistete kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.