Kaip įdiegti rūšiavimo funkciją C ++ versijoje?



Šis straipsnis padės jums ištirti funkciją „Rūšiuoti“ c ++ formatu ir išsamiai parodyti koncepciją

Rūšiavimas yra viena iš pagrindinių ir naudingiausių duomenų funkcijų. Jo tikslas - sutvarkyti duomenis tam tikru būdu, kuris gali būti didinamas arba mažinamas pagal reikalavimus. C ++ STL yra įmontuota funkcija pavadinimu „rūšiuoti ()“, kuri leidžia mums lengvai atlikti rūšiavimo algoritmą. Šiame straipsnyje mes nagrinėsime rūšiavimo funkciją C ++,

Šiame straipsnyje bus aptariami šie rodikliai:





Toliau su šiuo straipsniu apie rūšiavimo funkciją C ++

Rūšiuoti ( ) funkcija

Tai yra integruota algoritmo antraštės failo funkcija, naudojama konteineriams rūšiuoti kaip masyvui, vektoriams tam tikra tvarka. Viduje ši funkcija įgyvendinama kaip greitas rūšiavimas
„Quicksort“ yra padalijimo ir užkariavimo algoritmas. „Quicksort“ pirmiausia padalija didelį elementų sąrašą į du mažesnius antrinius: apatinius ir aukštesniuosius. Tada „Quicksort“ rekursyviai rūšiuoja pogrupius.



Veiksmai yra tokie:
1. Iš sąrašo pasirinkite atsitiktinį elementą (dažniausiai paskutinį elementą), vadinamą „pivot“.
2. Pertvarkykite sąrašą taip, kad visi elementai, kurių reikšmės būtų mažesnės už „Pivot“, eitų prieš „Pivot“, o visi elementai, kurių vertės yra didesnės už „Pivot“, eitų po jo, o vienodos reikšmės gali vykti bet kuriuo atveju.
3. Rekursyviai rūšiuokite mažesnių elementų ir didesnių elementų antrinį sąrašą, dar kartą pasirinkite posūkį sub-sąraše ir padalykite juos.
Pagrindinis rekurso atvejis yra nulinio arba vieno dydžio sąrašai, kurių niekada nereikia rūšiuoti, taigi juos sujungę mes rūšiuojame savo sąrašą.

„Quicksort“ yra greitesnis nei kiti O (n log n) algoritmai, tokie kaip „Insertion Sort“ arba „Bubble sort“. „Quicksort“ gali būti įgyvendinamas naudojant vietinį skaidymo algoritmą, o tai reiškia, kad visą rūšiavimą galima atlikti tik su O (log n) papildoma vieta. „Quicksort“ nėra stabili rūšis.
Jo sudėtingumas yra toks:
Geriausias atvejis - O (n log n)
Blogiausias atvejis - O (n ^ 2)
Vidutinis atvejis - O (n log n)

Sintaksė:
rūšiuoti (pirmas, paskutinis)
Čia
pirma - yra pirmo rūšiuojamo diapazono elemento indeksas (rodyklė).
paskutinis - yra paskutinio rūšiuojamo diapazono elemento indeksas (žymeklis).
Pavyzdžiui, mes norime išrūšiuoti masyvo ‘arr’ elementus nuo 1 iki 10 pozicijos, naudosime sort (arr, arr + 10) ir jis surūšiuos 10 elementų didėjimo tvarka.
Grąžinimo vertė
Nė vienas



Sudėtingumas

Rūšiavimo sudėtingumo vidurkis yra N * log2 (N), kur N = paskutinis - pirmas.

Duomenų diapazonas
Diapazone [pirmasis, paskutinis] esantis objektas yra modifikuotas.

Išimtys
Perkrovos su šablono parametru, kuris yra vadinamas „ExecutionPolicy“ ataskaitos klaidomis taip:
Jei algoritmas nesugeba paskirstyti atminties, „std :: bad_alloc“ išmetama kaip išimtis.
Jei funkcijos, iškviestos kaip algoritmo dalis, vykdymas išmeta išimtį std :: terminate.

„mysql_fetch_array“ php

Toliau su šiuo straipsniu apie rūšiavimo funkciją C ++

Pavyzdys - jei norite rūšiuoti duomenis didėjimo tvarka:

#include naudojant vardų sritį std int main () {int masyvas [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (masyvas) / sizeof (masyvas [0] ) // „sizeof“ nurodo viso masyvo dydį, ty kiekvieno simbolio dydį * Nr. simbolių // taigi gauti Nr. simbolių // mes padalijame sizeof (masyvo) dydį į bet kurio vieno masyvo simbolio dydį // čia jis yra masyvas [0] sort (masyvas, masyvas + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Išvestis:

Rezultatas - rūšiavimo funkcija C ++ - „Edureka“

Paaiškinimas

Iš aukščiau pateikto pavyzdžio matome, kad funkcija sort () pagal nutylėjimą surūšiuoja masyvą didėjimo tvarka.

Toliau su šiuo straipsniu apie rūšiavimo funkciją C ++

Pavyzdys - jei norite rūšiuoti duomenis mažėjimo tvarka:

Norėdami rūšiuoti masyvo duomenis mažėjančia tvarka, turime įvesti trečią parametrą, kuris naudojamas nurodyti elementų rūšiavimo tvarką. Duomenims rūšiuoti mažėjimo tvarka galime naudoti funkciją „didesnis ()“.

#include naudojant vardų sritį std int main () {int masyvas [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = size (masyvas) / sizeof (masyvas [0] ) sort (masyvas, masyvas + n, didesnis ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Išvestis:

Exp l anacija
Čia rūšiavimo () funkcija palygina taip, kad prieš tai būtų didesnis elementas.

Toliau su šiuo straipsniu apie rūšiavimo funkciją C ++

darbo su mysql darbastaliu pradžia

Dalinis_rūšiuoti

C ++ STL suteikia mums dalinio rūšiavimo funkciją, ši funkcija yra panaši į rūšiavimo () funkciją, tačiau, skirtingai nei funkcija rūšiuoti (), ji nenaudojama visam diapazonui rūšiuoti, o naudojama tik jos daliai rūšiuoti. Jis rūšiuoja elementus [pirmojo, paskutinio) diapazone taip, kad prieš vidurinį elementą esantys elementai būtų surūšiuoti didėjimo tvarka, o po vidurio esantys elementai liktų tokie, kokie yra.

Jį galima naudoti norint rasti didžiausią elementą, jei pirmosios pozicijos rūšiavimui naudojame funkcijos objektą

Pavyzdys

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

Išvestis:

Paaiškinimas:
Pirmiau pateiktą kodą galima naudoti norint rasti didžiausią skaičių serijoje, norint rasti mažiausią skaičių serijoje, mums tiesiog reikia pašalinti didesnę komandą.

Taigi mes baigėme šį straipsnį apie „Rūšiuoti funkciją C ++“. Jei norite sužinoti daugiau, apsilankykite patikimos internetinės mokymosi įmonės „Edureka“ „Java“ mokymuose. „Edureka“ kursai skirti mokyti jus tiek pagrindinėms, tiek pažangioms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skiltyje ir mes kuo greičiau susisieksime su jumis.