Ako implementovať funkciu zoradenia v C ++?



Tento článok vám pomôže preskúmať funkciu Zoradenie v c ++ a v tomto procese vám poskytne podrobnú ukážku konceptu

Triedenie je jednou z najzákladnejších a najužitočnejších funkcií aplikovaných na dáta. Zameriava sa na usporiadanie údajov konkrétnym spôsobom, ktorý sa môže podľa požiadaviek zvyšovať alebo znižovať. V C ++ STL je zabudovaná funkcia s názvom ‘sort ()’, ktorá nám umožňuje ľahko vykonávať triediaci algoritmus. V tomto článku sa budeme venovať funkcii triedenia v C ++,

V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi:





Ďalej v tomto článku o funkcii Zoradenie v C ++

Triediť ( ) funkcia

Je to zabudovaná funkcia súboru hlavičky algoritmu, ktorá sa používa na triedenie kontajnerov ako pole, vektory v určenom poradí. Táto funkcia je interne implementovaná ako rýchle triedenie
Quicksort je algoritmus rozdelenia a dobývania. Quicksort najskôr rozdelí veľký zoznam prvkov na dva menšie podzoznamy: nižšie prvky a vyššie prvky. Quicksort potom rekurzívne triedi podzoznamy.



Kroky sú tieto:
1. Vyberte zo zoznamu náhodný prvok (zvyčajne posledný prvok), ktorý sa nazýva pivot.
2. Usporiadajte zoznam takým spôsobom, aby všetky prvky s hodnotami menšími ako pivot prichádzali pred pivot, zatiaľ čo všetky prvky s hodnotami väčšími ako pivot nasledujú za ním a rovnaké hodnoty môžu ísť ľubovoľným spôsobom, tomuto procesu sa hovorí operácia oddielu.
3. Rekurzívne zoraďte podzoznam menších prvkov a podzoznam väčších prvkov, znova vyberte pivot v podzozname a rozdeľte ich.
Základným prípadom rekurzie sú zoznamy veľkosti nula alebo jedna, ktoré nikdy netreba triediť, a teda ich kombináciou triedime náš zoznam.

pole objektov java

Quicksort je v praxi rýchlejší ako iné O (n log n) algoritmy, ako napríklad Insertion Sort alebo Bubble sort. Quicksort je možné implementovať pomocou algoritmu delenia na mieste, čo znamená, že celý druh je možné vykonať iba s ďalším O (log n) ďalším priestorom. Quicksort nie je stabilný druh.
Jeho zložitosť je nasledovná:
Najlepší prípad - O (n log n)
Najhorší prípad - O (n ^ 2)
Priemerný prípad - O (n log n)

Syntax:
triediť (prvé, posledné)
Tu,
first - je index (ukazovateľ) prvého prvku v rozsahu, ktorý sa má zoradiť.
posledný - je index (ukazovateľ) posledného prvku v rozsahu, ktorý sa má zoradiť.
Napríklad chceme zoradiť prvky poľa „arr“ od polohy 1 do 10, použijeme zoradenie (arr, arr + 10) a zoradí sa 10 prvkov vo vzostupnom poradí.
Návratová hodnota
Žiadne



Zložitosť

Priemer zložitosti triedenia je N * log2 (N), kde N = posledný - prvý.

Rozsah údajov
Objekt v rozsahu [prvý, posledný) sa upraví.

Výnimky
Preťaženia s parametrom šablóny, ktorá je pomenovaná ako ExecutionPolicy, hlásia chyby nasledovne:
Ak algoritmus nedokáže alokovať pamäť, std :: bad_alloc sa vyvolá ako výnimka.
Ak sa vykonávanie funkcie vyvolanej ako súčasť algoritmu vrhne na výnimku std :: terminate.

Ďalej v tomto článku o funkcii Zoradenie v C ++

Príklad - Zoradenie údajov vzostupne:

#include using namespace std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' udáva veľkosť celkového poľa, tj veľkosť každého znaku * č. znakov // takže získate č. znakov // rozdelíme sizeof (pole) na veľkosť ľubovoľného jedného znaku poľa // tu je to array [0] sort (pole, pole + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Výkon :

Výstup - funkcia triedenia v C ++ - Edureka

Vysvetlenie

Z vyššie uvedeného príkladu vidíme, že funkcia sort () štandardne triedi pole vo vzostupnom poradí.

typ komentárov v jave

Ďalej v tomto článku o funkcii Zoradenie v C ++

Príklad - Zoradenie údajov v zostupnom poradí:

Aby sme zoradili dáta poľa v zostupnom poradí, musíme zaviesť tretí parameter, ktorý slúži na určenie poradia, v ktorom sa majú prvky triediť. Na triedenie údajov v zostupnom poradí môžeme použiť funkciu „greater ()“.

#include using namespace std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (pole) / sizeof (pole [0] ) triediť (pole, pole + n, väčšie ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Výkon:

Exp l anácia
Funkcia sort () tu porovnáva spôsobom, ktorý dáva prednosť väčšiemu prvku.

Ďalej v tomto článku o funkcii Zoradenie v C ++

Čiastočné_triedenie

C ++ STL nám poskytuje funkciu čiastočného triedenia, táto funkcia je obdobou funkcie sort (), ale na rozdiel od funkcie sort () sa nepoužíva na triedenie celého rozsahu, ale skôr na triedenie iba jeho časti. Zoraďuje prvky v rozsahu [prvý, posledný) tak, že prvky pred stredným prvkom sú zoradené vzostupne, zatiaľ čo prvky po stredoch sú ponechané tak, ako sú.

Môže sa použiť na nájdenie najväčšieho prvku, ak na triedenie na prvú pozíciu použijeme funkčný objekt

Príklad

#include #include #include using namespace std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr partial_sort (vec.begin (), vec.begin () + 1, vec.end (), greater ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Výkon:

Vysvetlenie:
Vyššie uvedený kód je možné použiť na nájdenie najväčšieho čísla v rade. Na nájdenie najmenšieho čísla v rade stačí odstrániť väčší príkaz.

Tak sme sa dostali na koniec tohto článku o funkcii zoradenia v C ++. Ak sa chcete dozvedieť viac, vyskúšajte Java Training by Edureka, dôveryhodná online vzdelávacia spoločnosť. Edureka’s kurz je navrhnutý tak, aby vás vyškolil na základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.