Kuidas rakendada funktsiooni Sort C ++ -s?



See artikkel aitab teil uurida funktsiooni Sort sortides c ++ ja annab selle käigus üksikasjaliku tutvustuse kontseptsiooni kohta

Sorteerimine on üks elementaarsemaid ja kasulikumaid funktsioone, mida andmetele rakendatakse. Selle eesmärk on korraldada andmeid teatud viisil, mis võib nõuete kohaselt suureneda või väheneda. C ++ STL-is on sisseehitatud funktsioon nimega ‘sort ()’, mis võimaldab meil sorteerimisalgoritmi hõlpsalt teostada. Selles artiklis uurime sortimisfunktsiooni C ++,

Selles artiklis käsitletakse järgmisi näpunäiteid:





teisendades javas topelt int-ks

Selle artikliga C ++ sortimisfunktsiooni kohta jätkatakse

Sorteeri ( ) funktsioon

See on algoritmi päisefaili sisseehitatud funktsioon, mida kasutatakse konteinerite sorteerimiseks massiivi kujul, vektorid kindlas järjekorras. Sisemiselt on see funktsioon rakendatud kiirsorteerimisena
Quicksort on jagamise ja vallutamise algoritm. Quicksort jagab esmalt suure elementide loendi kaheks väiksemaks alamloendiks: alumisteks ja kõrgemateks. Seejärel sorteerib Quicksort alamloendid rekursiivselt.



Sammud on järgmised:
1. Valige loendist juhuslik element (tavaliselt viimane element), mida nimetatakse pivotiks.
2. Järjestage loend ümber nii, et kõik elemendid, mille väärtus on väiksem kui pöördtapp, tuleksid enne pöördetappi, samal ajal kui kõik elemendid, mille väärtus on suurem kui pöördetapp, tulevad pärast seda ja võrdsed väärtused võivad minna mõlemale poole, seda protsessi nimetatakse partitsiooni toiminguks.
3. Sorteerige rekursiivselt väiksemate elementide alamloend ja suuremate elementide alamloend, valige alamloendis uuesti pöördosa ja jagage need.
Rekursiooni põhijuhtumiks on loendid suurusega null või üks, mida ei pea kunagi sortima ja seega nende kombineerimisel sorteerime oma loendi.

Quicksort on praktikas kiirem kui muud O (n log n) algoritmid nagu Insertion Sort või Bubble sort. Kiirsorti saab rakendada kohapealse jaotuse algoritmiga, mis tähendab, et kogu sortimist saab teha ainult O (log n) lisaruumiga. Quicksort ei ole stabiilne sort.
Selle keerukus on järgmine:
Parim juhtum - O (n log n)
Halvim juhtum - O (n ^ 2)
Keskmine juhtum - O (n log n)

Süntaks:
sort (esimene, viimane)
Siin,
esimene - on sorteeritava vahemiku esimese elemendi indeks (osuti).
viimane - on sorteeritava vahemiku viimase elemendi indeks (osuti).
Näiteks tahame sorteerida massiivi ‘arr’ elemendid asendist 1 kuni 10, kasutame sortimist (arr, arr + 10) ja see sorteerib 10 elementi kasvavas järjekorras.
Tagastusväärtus
Puudub



Keerukus

Sorteerimise keerukuse keskmine on N * log2 (N), kus N = viimane - esimene.

Andmete ulatus
Vahemikus [esimene, viimane] olevat objekti muudetakse.

Erandid
Ülekoormused malli parameetriga, mille nimi on ExecutionPolicy aruande tõrge, järgmiselt:
Kui algoritm ei suuda mälu eraldada, visatakse std :: bad_alloc erandina.
Kui algoritmi osana kutsutud funktsiooni käivitamine viskab selle erandi std :: terminate.

Selle artikliga C ++ sortimisfunktsiooni kohta jätkatakse

Näide - andmete sortimiseks kasvavas järjekorras:

#include nimeruumi kasutamine st int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = (massiiv) / sizeof (massiiv [0] ) // 'sizeof' annab kogu massiivi suuruse, st iga märgi suuruse * ei. tähemärki // nii et ei. tähemärki // jagame massiiviof massiivi massiivi ühe tähemärgi suurusega // siin on see massiiv [0] sort (massiiv, massiiv + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Väljund:

Väljund - sortimisfunktsioon C ++ keeles - Edureka

Selgitus

Ülaltoodud näite põhjal näeme, et sort () funktsioon sorteerib vaikimisi massiivi kasvavas järjekorras.

Selle artikliga C ++ sortimisfunktsiooni kohta jätkatakse

Näide - andmete sortimiseks kahanevas järjekorras:

Massiivi andmete sortimiseks kahanevas järjekorras peame kasutusele võtma kolmanda parameetri, mida kasutatakse elementide sortimise järjekorra määramiseks. Andmete järjestamiseks kahanevas järjekorras saame kasutada funktsiooni „suurem ()”.

kuidas rakendada abstraktset meetodit javas
#include kasutades nimeruumi st int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = (massiiv) / sizeof (massiiv [0] ) sort (massiiv, massiiv + n, suurem ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Väljund:

Exp l anatsioon
Funktsioon Siin sort () teeb võrdluse viisil, mis paneb suurema elemendi ette.

Selle artikliga C ++ sortimisfunktsiooni kohta jätkatakse

Osaline_sortimine

C ++ STL pakub meile osalise sorteerimise funktsiooni, funktsioon sarnaneb sort () funktsiooniga, kuid erinevalt sort () funktsioonist ei kasutata seda kogu vahemiku sorteerimiseks, pigem kasutatakse ainult selle ühe osa sortimiseks. See sorteerib elemendid vahemikus [esimene, viimane] selliselt, et elemendid enne keskelementi on järjestatud kasvavas järjekorras, samas kui keskel olevad elemendid jäävad selliseks, nagu see on.

Seda saab kasutada suurima elemendi leidmiseks, kui esimese positsiooni sortimiseks kasutame funktsiooni objekti

Näide

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

Väljund:

Selgitus:
Eespool nimetatud koodi saab kasutada seeria suurima arvu leidmiseks, seeria väikseima numbri leidmiseks peame lihtsalt suurema käsu eemaldama.

Seega oleme jõudnud selle artikli lõppu, mis käsitleb sorteerimisfunktsiooni C ++ keeles. Kui soovite rohkem teada saada, vaadake usaldusväärse veebipõhise õppefirma Edureka Java koolitust. Edureka oma Kursus on mõeldud selleks, et õpetada teid nii põhi- kui ka täiustatud Java-kontseptsioonide jaoks koos erinevate Java-raamistikega, nagu talveunerežiim ja kevad.

Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.