Ez a cikk bemutatja a Radix Sort rendszert, és bemutatja, hogyan kell végrehajtani a Radix Sort rendszert A következő cikkeket tárgyaljuk ebben a cikkben,
Tehát kezdjük el akkor,
Egyszerű szavakkal, a rendezés azt jelenti, hogy az adott elemeket szisztematikus sorrendbe rendezzük. A rendezés a legtöbb algoritmusban megtörténik, mert megkönnyíti a keresést, ami végül hatékonyabbá teszi az algoritmust. Ebben a blogban meg fogjuk érteni az egyik leggyakrabban használt soring algoritmust, azaz a Radix sort.
A Radix sort egy nem összehasonlító egész szám rendezési algoritmus. Számjegyet rendez számjegyenként, a legkevésbé jelentős számjegytől (azaz a jobb oldalon lévő számjegytől kezdve) a legjelentősebb számjegyig (azaz a bal oldalon található számjegyig). A Radix rendezés a számlálás rendezését alprogramként rendezi.
Az összehasonlításon alapuló rendezési algoritmus (például Halom rendezés, Gyors rendezés, Összevonás rendezése) alsó határa a & Omega (nLogn), és az nLognon túl nem javítható. Ha a rendezés számlálásáról beszélünk, akkor ez egy lineáris idő-rendezési algoritmus O (n + k) idő komplexitással, ahol a tartomány 1 és k között van. Most a rendezés számlálásának problémája az, hogy O (n2) -et vesz fel, amikor az elemek 1-től n2-ig terjednek.
Tehát egy tömb rendezéséhez olyan elemekkel, amelyek lineáris időben 1 és n2 között mozognak, radix rendezésre van szükségünk. A Radix sort rendezi a tömb számjegyét számjegyenként, kezdve a legkevésbé jelentős számjegytől a legjelentősebb számjegyig. A Radix rendezés a számlálás rendezését alprogramként rendezi.
Továbblépve ezzel a cikkel a Radix Sort programról C-ben,
Radix rendezési algoritmus
Hajtsa végre a következő lépéseket az összes számjegyre a jobb oldalon lévő legkevésbé jelentős számjegytől kezdve, a bal oldali legjelentősebb számjegy felé haladva.
c ++ egy tömb rendezése
Rendezze az elemeket az aktuális számjegy szerinti számlálási rendezéssel.
Példa:
Eredeti tömb:
140, 65, 85, 110, 612, 54, 12, 86
A legkevésbé jelentős számjegy rendezése, azaz egy helyen ad
140, 110, 612, 12, 54, 65, 85, 86
MEGJEGYZÉS: Mivel a 612 12 előtt jelenik meg, és a rendezés csak az egyik számjegyére vonatkozik, így a 612 12 előtt jelenik meg az iteráció után.
A következő számjegy szerinti rendezés, azaz a 10-es helynél:
110, 612, 12, 140, 54, 65, 85, 86
A legjelentősebb számjegyek szerinti rendezés, azaz a 100-as éveknél jelen van:
012, 054, 065, 085, 086, 110, 140, 612
Továbblépve ezzel a cikkel a Radix Sort programról C-ben,
Radix rendezési program C-ben
Először nézze meg a Radix rendezési funkciót
Radix rendezési funkció:
void radixsort (int tömb [], int n) {// Szerezd meg a legnagyobb számot a számjegyek maximális számának megismeréséhez int m = getMax (tömb, n) int dig // A számlálás rendezése minden (dig = 1) számjegyhez m / dig> 0 dig * = 10) countSort (tömb, n, dig)}
Továbblépve ezzel a cikkel a Radix Sort programról C-ben,
Számolási rendezési funkció:
void countSort (int tömb [], int n, int dig) {int kimenet [n] int i, count [10] = {0} // Események számának tárolása a [count] -ban (i = 0 i= 0 i--) {output [count [(tömb [i] / dig)% 10] - 1] = tömb [i] szám [(tömb [i] / dig)% 10] -} // A kimeneti tömb arr [] -ig, így az arr [] most // az aktuális számjegy szerint rendezett számokat tartalmaz (i = 0 i Előre haladva írjunk egy C programot a Radix sort végrehajtására.
Példa:
#include // Funkció a legnagyobb szám megkeresésére int getMax (int tömb [], int n) {int max = tömb [0] int i (i = 1 i max) max = tömb [i] visszatér max} // Funkció a Count sort void countSort (int tömb [], int n, int dig) {int kimenet [n] int i, szám [10] = {0} // Események számának tárolása a [] számban (i = 0 esetén) én= 0 i--) {output [count [(tömb [i] / dig)% 10] - 1] = tömb [i] szám [(tömb [i] / dig)% 10] -} // A kimeneti tömb arr [] -ig, így az arr [] most // az aktuális számjegy szerint rendezett számokat tartalmaz az (i = 0 i 0 dig * = 10) countSort (tömb, n, dig)} // Funkció tömb nyomtatásához érvénytelen nyomtat (int arr [], int n) {int i for (i = 0 i Kimenet
A fenti program végrehajtása után megértette volna a Radix Sort programot C-ben. Így a „Quicksort a Java-ban” című cikk végére értünk. Ha többet szeretne megtudni, nézze meg a , egy megbízható online tanulási társaság. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.
Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.