Bevezetés a C ++ osztályozásba
Ha megrendelésre kerül az elemek gyűjteménye, a rendezés elősegíti az elemek elrendezését a rekordban a rendelési kapcsolat alapján. Fontolja meg a sok információt tartalmazó fájlrekordot. A listából való hozzáféréshez szükség van egy kulcsmezőre az elem aktuális helyének mutatására. Vegyük például az adatbázisban szereplő nevek listáját, amely betűrendben rendezhető. A válogatás fontos szerepet játszott a számítógépek és a technológia területén. Lássuk többet ebben a cikkben.
Mi a rendezés a C ++-ban?
A rendezés az az alapkoncepció, amelyet a programozó vagy a kutató használ a szükséges bemenetek rendezésére. A komplexitás sorrendjét 0 (N * log (N)) adja meg. A bemenetek rendezése megkönnyíti számos olyan probléma megoldását, mint például a Keresés, a Maximum és a Minimum elem. Bár a válogatás az adatokat sorrendben rendezi, nagyon fontos a folyamat hatékonysága, amely két kritériumon alapul: - Az adott adat rendezéséhez szükséges idő és memória. Az időt a használt kulcsok összehasonlításának megszámlálásával mérjük. Számos algoritmus áll rendelkezésre. Általánosságban elmondható, hogy a C ++ kategóriában történő rendezés két típusra osztható:
- Belső rendezés
- Külső rendezés
Szintaxis és példa
Szintaxis:
A C ++ a sort () beépített függvényt használja algoritmusaikhoz a konténerek rendezéséhez, mint például vektorok, tömbök.
Rendezés (tömb, tömb + méret);
Példák:
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
Kimenet:
Hogyan működik?
Először a Gyors rendezést alkalmazzuk, amelyet fontos módszernek tekintünk a különféle rendezési típusok között. Egy tömb alapszintű rendezése Quicksort megközelítést alkalmaz. A rendezés végrehajtásának különböző módjai vannak, ezeknek a technikáknak az a célja, hogy két elem összehasonlítása és az ideiglenes változóval való cseréje legyen. Ebben a cikkben a megvalósításhoz használt legfontosabb válogatást tárgyaljuk. A következők:
- Bubble Sort
- Beszúrás Rendezés
- Gyors rendezés
- Kiválasztás Rendezés
Vannak Merge Sort, radix sort, tape tape válogatás, amelyeket később megvitathatunk. Először a Bubble rendezésével járunk.
1. Bubble Sort
A buborékrendezés az egyik legegyszerűbb rendezési módszer, amelyet alkalmazásokhoz használhatunk. Ebben a technikában az egymást követő cserék történnek a rendezendő rekordokon keresztül. Minden lépésben összehasonlítja a kulcsot az adatokkal, és kicseréli az elemeket, ha nem a kívánt sorrendben. A szortírozás a szomszédos elemekkel történik, amikor csak egy elem kerül a rendezett helyre csere után.
Példa: Vegyünk egy válogatott tömböt A () = (6, 2, 4, 7, 1)
6 | 2 | 4 | 7 | 1 |
A (0) | A (1) | A (2) | A (3) | A (4) |
1. lépés: Az A (0)> A (1) összehasonlítása, ha a feltétel igaz, cserélje az elemet (6> 2) true-ra, tegye a 2-t A (0) -ba. Hasonlóképpen, az összes lépést ugyanazzal a módszerrel végezzük, amíg a tömb rendezésre nem kerül.
Most a tömb A () = (2, 6, 4, 7, 1)
2. lépés: a 6-ot összehasonlítottuk a 4-gyel. Mivel a 6 nagyobb, mint a 4. Ezért a 6-ot és a 4-t felcseréljük.
Most a tömb A () = (2, 4, 6, 7, 1)
3. lépés: A 6. elemet összehasonlítjuk a 7. elemmel. Mivel a 6 <2 és az elemek növekvő sorrendben vannak, az elemeket nem cseréljük.
A rendezett tömb A () = (2, 4, 6, 7, 1).
Folytassa a folyamatot, amíg a tömb rendezve van.
2. Beszúrás rendezése
Ebben a technikában a második adatelemmel kezdjük azzal a feltételezéssel, hogy az első elem már rendezve van, és összehasonlítást végezzünk a második elemmel, és folytatjuk a lépést a másik következő elemmel. N elem tömbjében N-1 átadás szükséges, hogy rendezett elem legyen.
Vegyünk egy A tömböt () = (8, 3, 6, 1)
8 | 3 | 6 | 1 |
1. lépés: Az első elem a cserélendő tömb legnagyobb elemét keresi. Ha nagyobb, akkor ugyanaz marad, és továbbmozdul a második elemhez, itt a 8 nagyobb, mint az összes, csere nem történik.
8 | 3 | 6 | 1 |
2. lépés: Csere a második elemmel
3 | 8 | 6 | 1 |
3. lépés: Csere a harmadik elemmel
3 | 6 | 8 | 1 |
4. lépés: Csere a negyedik elemmel
1 | 3 | 6 | 8 |
3. Gyors rendezés
Ez a technika követi az osztási és meghódítási algoritmust, és nagyon hatékonynak, valamint hatalmas tömböknél gyorsabbnak tekinthető. Három alszakaszra vannak osztva: bal, jobb és középső. A középső elemnek egyetlen értéke van, és pivotnak nevezik. A mechanizmus így megy, a bal oldali szegmensben lévő elemnek nem szabad nagyobb a kulcs, mint a középső elemnél, és a jobb oldali elemnek nem kell egy kulcsa, amely kisebb, mint a középső elemé. Most kezdjük a válogatás folyamatának szemléltetésével. A Quicksort rekurzív koncepciót alkalmaz az alrész rendezése során. A tömb részekre oszlik, a bal és a jobb szegmenseket meghódítás útján is megosztjuk. Ebben a példában az utolsó elem forgathatósága figyelembe véve, és az első elem feltételezése alacsony. Vegyünk egy tömb elemet
49 | 22 | 11 | 16 | 56 | 30 |
A jobb oldali elem megvételekor a pivot elem = 30
16 | 22 | 11 | 30 | 56 | 49 |
A csuklónál nagyobb elem balra helyezkedik el, jobbra kisebb.
16 | 22 | 11 | 56 | 49 |
A mutatót a csuklóhoz helyezzük, és felosztjuk egy forgás körül.
11 | 22 | 16 | 56 | 49 |
Az alrészeket külön-külön rendezik.
11 | 16 | 22 | 30 | 49 | 56 |
Végül kapott egy rendezett tömböt.
4. Kiválasztás Rendezés
Ezt a technikát csere-válogatásnak is nevezik, amely kettős művelet-keresést és -válogatást hajt végre. A megvalósítás az alábbiakban meghatározottak szerint egyenes válogatást végez. Itt meg kell határozni a tömbben levő legkisebb elemet, és ezt az elemet az első i-edik helyzetbe kell rendezni, ezután a második legkisebb elem kerül azonosításra, és a második helyzetben van rendezve. A válogatás elhagyja a hurkot, amikor a válogatás nélküli rész üres lesz. Az idő bonyolultságát O (n 2 ) -ben adjuk meg.
Tekintsük a következő tömböt:
63 | 26 | 13 | 23 | 12 |
1. Keresse meg a legkisebb elemet, és tegye az elejére, és felcseréli a helyzetével.
12 | 26 | 13 | 23 | 63 |
2. A második (a) elemet azonosítjuk a minimális elemmel összehasonlítva, és helyezzük a második helyzetbe, hasonlóan, a továbbítás folytatódik.
12 | 13 | 26 | 23 | 64 |
Végső rendezett kimenet
12 | 13 | 23 | 26 | 64 |
Következtetés
Összefoglalva, ez a cikk a koncepciók rendezésére és működési mechanizmusára összpontosított. Ezek a rendezési technikák párhuzamos feldolgozási koncepciókat használnak. A rendezés alapvető építőelemet képez az algoritmusok strukturálásában az adatok valós világbeli problémáinak megoldására az értékhalmaz követelmények szerinti rendezésével.
Ajánlott cikkek
Ez egy útmutató a C ++ szerinti rendezéshez. Itt bemutatjuk a Bevezetést és a Szintaxist példákkal, a Hogyan működik. A további javasolt cikkeken keresztül további információkat is megtudhat -
- Rendezés a Tableau-ban
- Iterator C ++ nyelven
- Tömb funkciók a C-ben
- Halom C sorrendben
- Hogyan történik a szortírozás a PHP-ben?
- Halom Rendezés Pythonban
- Iterator Java-ban
- A C ++ 11 legfontosabb tulajdonságai és előnyei
- Iterator Pythonban A Python előnyei és példái