Kā ieviest funkciju Kārtot C ++?



Šis raksts palīdzēs jums izpētīt funkciju Kārtot c ++ un šajā procesā sniegs detalizētu koncepcijas demonstrāciju

Šķirošana ir viena no pamata un noderīgākajām funkcijām, kas tiek izmantota datiem. Tās mērķis ir sakārtot datus noteiktā veidā, kas var palielināties vai samazināties atbilstoši prasībām. C ++ STL ir iebūvēta funkcija ar nosaukumu ‘sort ()’, kas ļauj mums viegli veikt šķirošanas algoritmu. Šajā rakstā mēs izpētīsim kārtošanas funkciju C ++,

Šajā rakstā tiks apskatīti šādi rādītāji:





Turpinot šo rakstu par kārtošanas funkciju C ++

Kārtot ( ) funkcija

Tā ir iebūvēta funkcija algoritma galvenes failā, ko izmanto konteineru kā masīva, vektoru kārtošanai noteiktā secībā. Iekšēji šī funkcija tiek ieviesta kā ātrā kārtošana
Quicksort ir dalīšanas un iekarošanas algoritms. Quicksort vispirms sadala lielu elementu sarakstu divos mazākos apakškārtos: apakšējos un augstākajos. Pēc tam Quicksort rekursīvi kārto apakškārtas.



Darbības ir šādas:
1. No saraksta izvēlieties nejaušu elementu (parasti pēdējo elementu), ko sauc par rakursteni.
2. Pārkārtojiet sarakstu tādā veidā, lai visi elementi, kuru vērtības ir mazākas par šarnīru, nonāktu pirms šarnīra, savukārt visi elementi, kuru vērtības ir lielākas par šarnīru, nāk pēc tā, un vienādas vērtības var iet abos virzienos - procesu sauc par nodalījuma darbību.
3. Rekurzīvi kārtojiet mazāko elementu un lielāko elementu apakškopu, apakškārtā atkal atlasiet rakursi un sadaliet tos.
Rekursijas bāzes gadījums ir nulles vai viena lieluma saraksti, kurus nekad nav nepieciešams kārtot, un tādējādi tos apvienojot, mēs kārtojam savu sarakstu.

Quicksort praksē ir ātrāks nekā citi O (n log n) algoritmi, piemēram, Insertion Sort vai Bubble sort. Pikasortu var realizēt ar sadalīšanas algoritmu vietā, kas nozīmē, ka visu kārtošanu var veikt tikai ar O (log n) papildu vietu. Quicksort nav stabils veids.
Tās sarežģītība ir šāda:
Labākais gadījums - O (n log n)
Sliktākais gadījums - O (n ^ 2)
Vidējais gadījums - O (n log n)

Sintakse:
kārtot (pirmais, pēdējais)
Šeit,
pirmais - ir kārtojamā diapazona pirmā elementa indekss (rādītājs).
pēdējais - ir kārtojamā diapazona pēdējā elementa indekss (rādītājs).
Piemēram, mēs vēlamies kārtot masīva ‘arr’ elementus no 1 līdz 10 pozīcijai, mēs izmantosim sort (arr, arr + 10), un tas kārtos 10 elementus Augošā secībā.
Atgriešanās vērtība
Nav



Sarežģītība

Šķirošanas sarežģītības vidējais lielums ir N * log2 (N), kur N = pēdējais - pirmais.

Datu diapazons
Diapazonā [pirmais, pēdējais] esošais objekts tiek modificēts.

Izņēmumi
Pārslodzes ar veidnes parametru, kas tiek dēvēts par ExecutionPolicy atskaites kļūdām, ir šādi:
Ja algoritms nespēj piešķirt atmiņu, std :: bad_alloc tiek izmests kā izņēmums.
Ja funkcijas izpilde, kas izsaukta kā algoritma sastāvdaļa, tā izmet izņēmumu std :: terminate.

java, kad to izmantot

Turpinot šo rakstu par kārtošanas funkciju C ++

Piemērs - lai kārtotu datus augošā secībā:

#include izmantojot nosaukumvietu std int main () {int masīvs [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (masīvs) / sizeof (masīvs [0] ) // 'sizeof' norāda kopējā masīva lielumu, ti, katras rakstzīmes lielumu * nē. rakstzīmes // tā, lai iegūtu nē. rakstzīmes // mēs dalām izmēruof (masīvs) ar jebkura masīva rakstzīmes lielumu // šeit tas ir masīvs [0] sort (masīvs, masīvs + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Izeja:

Output- Kārtot funkciju C ++ - Edureka

Paskaidrojums

No iepriekš minētā piemēra mēs redzam, ka sort () funkcija pēc noklusējuma sakārto masīvu augošā secībā.

Turpinot šo rakstu par kārtošanas funkciju C ++

Piemērs - lai kārtotu datus dilstošā secībā:

Lai sakārtotu masīva datus dilstošā secībā, mums jāievieš trešais parametrs, kas tiek izmantots, lai norādītu secību, kādā elementi ir jāšķiro. Mēs varam izmantot funkciju “lielākam ()”, lai kārtotu datus dilstošā secībā.

#include, izmantojot nosaukumvietu std int main () {int masīvs [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (masīvs) / sizeof (masīvs [0] ) sort (masīvs, masīvs + n, lielāks ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Izeja:

Exp l anācija
Funkcija Šeit šķirot () veic salīdzinājumu tādā veidā, kas pirms tā liek lielāku elementu.

Turpinot šo rakstu par kārtošanas funkciju C ++

Daļējs_kārtot

C ++ STL nodrošina mums daļēju šķirošanas funkciju, funkcija ir līdzīga funkcijai sort (), bet atšķirībā no funkcijas sort () tā netiek izmantota visa diapazona kārtošanai, drīzāk tiek izmantota tikai tās apakšdaļas šķirošanai. Tas kārto elementus diapazonā [pirmais, pēdējais] tādā veidā, ka elementi pirms vidējā elementa tiek sakārtoti augošā secībā, turpretī elementi pēc vidus paliek tādi, kādi tie ir.

To var izmantot, lai atrastu lielāko elementu, ja mēs izmantojam funkciju objektu, lai kārtotu pirmajā pozīcijā

Piemērs

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

Izeja:

nolaižamā izvēlne

Paskaidrojums:
Iepriekš minēto kodu var izmantot, lai atrastu lielāko skaitu sērijā, lai atrastu mazāko numuru sērijā, mums vienkārši jānoņem lielākā komanda.

Tādējādi esam nonākuši pie šī raksta par ‘Šķirošanas funkcija C ++’ beigām. Ja vēlaties uzzināt vairāk, skatiet uzticamo tiešsaistes mācību uzņēmumu Edureka Java apmācību. Edureka kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem, kā arī dažādām Java sistēmām, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.