A Algoritem za razvrščanje se uporablja za preureditev dane matrike ali seznama elementov glede na primerjalni operator za elemente. Operator primerjave se uporablja za določitev novega vrstnega reda elementov v ustrezni podatkovni strukturi.
Na primer: Spodnji seznam znakov je razvrščen v naraščajočem vrstnem redu njihovih vrednosti ASCII. To pomeni, da bo znak z nižjo vrednostjo ASCII postavljen na prvo mesto kot znak z višjo vrednostjo ASCII.
Kazalo
- Kaj je razvrščanje?
- Razvrščanje terminologije
- Značilnosti algoritmov za razvrščanje
- Uporaba algoritmov za razvrščanje
- Osnove algoritmov za razvrščanje
- Algoritmi za razvrščanje
- Izvedbe knjižnice
- Enostavne težave pri razvrščanju
- Srednje težave pri razvrščanju
- Težke težave pri razvrščanju
Kaj je razvrščanje?
Razvrščanje se nanaša na preureditev dane matrike ali seznama elementov glede na primerjalni operator na elementih. Operator primerjave se uporablja za določitev novega vrstnega reda elementov v ustrezni podatkovni strukturi. Razvrščanje pomeni preurejanje vseh elementov v naraščajočem ali padajočem vrstnem redu.
Terminologija razvrščanja:
- Razvrščanje na mestu: Uporablja algoritem za razvrščanje na mestu stalni prostor za ustvarjanje izhoda (spremeni samo dano matriko). Seznam razvrsti samo tako, da spremeni vrstni red elementov na seznamu. Primeri: Izbirno razvrščanje, mehurčkasto razvrščanje z vstavljanjem in kopično razvrščanje.
- Notranje razvrščanje: Notranje razvrščanje je, ko so vsi podatki postavljeni v glavni pomnilnik oz notranji pomnilnik . Pri notranjem razvrščanju težava ne more preseči velikosti vnosa. Primer: razvrščanje kopice, razvrščanje oblačkov, razvrščanje izbire, hitro razvrščanje, razvrščanje lupine, razvrščanje vstavljanja.
- Zunanje razvrščanje: Zunanje razvrščanje je, ko vseh podatkov, ki jih je treba razvrstiti, ni mogoče shraniti v pomnilnik hkrati, razvrščanje se imenuje zunanje razvrščanje. Zunanje razvrščanje se uporablja za ogromno količino podatkov. Primeri: razvrščanje z združitvijo, razvrščanje po oznaki, večfazno razvrščanje, razvrščanje s štirimi trakovi, zunanje razvrščanje po osnovi itd.
- Stabilno razvrščanje: Ko se v enako naročilo v razvrščenih podatkih brez spreminjanja njihovega položaja se imenuje stabilno razvrščanje. Primeri: Razvrščanje z združitvijo, Razvrščanje z vstavljanjem, Razvrščanje z mehurčki.
- Nestabilno razvrščanje: Ko se v drugačen naročilo pri razvrščenih podatkih se imenuje nestabilno razvrščanje. Primeri: hitro razvrščanje, razvrščanje kopice, razvrščanje lupine .
Značilnosti algoritmov za razvrščanje:
- Časovna zapletenost: Časovna kompleksnost, merilo, koliko časa traja izvajanje algoritma, se uporablja za kategorizacijo algoritmov za razvrščanje. Zmogljivost algoritma za razvrščanje v najslabšem, povprečnem in najboljšem primeru je mogoče uporabiti za kvantificiranje časovne kompleksnosti procesa.
- Kompleksnost prostora: Algoritmi za razvrščanje imajo tudi prostorsko kompleksnost, kar je količina pomnilnika, ki je potrebna za izvedbo algoritma.
- Stabilnost: Za algoritem razvrščanja pravimo, da je stabilen, če se po razvrščanju ohrani relativni vrstni red enakih elementov. To je pomembno v nekaterih aplikacijah, kjer je treba ohraniti prvotni vrstni red enakih elementov.
- Razvrščanje na mestu: Algoritem za razvrščanje na mestu je tisti, ki ne potrebuje dodatnega pomnilnika za razvrščanje podatkov. To je pomembno, ko je razpoložljivi pomnilnik omejen ali kadar podatkov ni mogoče premakniti.
- Prilagodljivost: Prilagodljiv algoritem razvrščanja je tisti, ki izkorišča že obstoječi vrstni red v podatkih za izboljšanje zmogljivosti.
Uporaba algoritmov za razvrščanje:
- Algoritmi iskanja: Razvrščanje je pogosto ključni korak v iskalnih algoritmih, kot je binarno iskanje, ternarno iskanje, kjer je treba podatke razvrstiti pred iskanjem določenega elementa.
- Upravljanje podatkov: Razvrščanje podatkov olajša iskanje, pridobivanje in analizo.
- Optimizacija baze podatkov: Razvrščanje podatkov v zbirkah podatkov izboljša zmogljivost poizvedb.
- Strojno učenje: Razvrščanje se uporablja za pripravo podatkov za usposabljanje modelov strojnega učenja.
- Analiza podatkov: Razvrščanje pomaga pri prepoznavanju vzorcev, trendov in odstopanj v naborih podatkov. Ima ključno vlogo pri statistični analizi, finančnem modeliranju in drugih področjih, ki temeljijo na podatkih.
- Operacijski sistemi: Algoritmi za razvrščanje se v operacijskih sistemih uporabljajo za naloge, kot so razporejanje opravil, upravljanje pomnilnika in organizacija datotečnega sistema.
Osnove algoritmov za razvrščanje:
- Uvod v tehnike razvrščanja – Vadnice za strukturo podatkov in algoritme
- Aplikacije, prednosti in slabosti algoritma za razvrščanje
- Kakšen je resnični primer razvrščanja?
- Kaj je razvrščanje v DSA | Pomen razvrščanja
Algoritmi za razvrščanje:
- Izbor Razvrsti
- Bubble Sort
- Razvrščanje vstavljanja
- Spoji Razvrsti
- Hitro razvrščanje
- Razvrščanje kopice
- Štetje Razvrsti
- Razvrsti Radix
- Razvrščanje vedra
- Algoritem za razvrščanje Bingo
- ShellSort
- TimSort
- Glavnik Razvrsti
- Pigeonhole Sort
- Cikel Razvrščanje
- Cocktail Sort
- Razvrščanje pramenov
- Bitonska sorta
- Razvrščanje palačink
- BogoSort ali permutacijsko razvrščanje
- Gnome Razvrsti
- Sleep Sort – Kralj lenobe
- Razvrščanje strukture v C++
- Stooge Sort
- Razvrščanje oznak (za razvrstitev in izvirnost)
- Drevesna vrsta
- Sodo-liho razvrščanje / Brick Sort
- 3-smerno razvrščanje z združevanjem
Izvedbe knjižnice:
- Introsort – orožje za razvrščanje C++
- Primerjalna funkcija qsort() v C
- sort() v C++ STL
- C qsort() proti C++ sort()
- Arrays.sort() v Javi s primeri
- Collections.sort() v Javi s primeri
Enostavne težave pri razvrščanju:
- Razvrstite elemente po pogostosti
- Razvrsti niz 0, 1 in 2
- Razvrstite številke, shranjene na različnih napravah
- Razvrsti matriko v valovni obliki
- Preverite, ali se katera koli dva intervala med danim nizom intervalov prekrivata
- Kako razvrstiti niz datumov v C/C++?
- Razvrščanje nizov z uporabo Bubble Sort
- Poiščite manjkajoče elemente obsega
- Razvrsti matriko glede na število nastavljenih bitov
- Sodo postavljene elemente razvrsti v naraščajočem vrstnem redu, lihe pa v padajočem vrstnem redu
- Razvrsti matriko, ko sta razvrščeni dve polovici
- Razvrščanje velikih celih števil
- Razvrsti povezan seznam 0, 1 in 2
Srednje težave pri razvrščanju:
- Število inverzij v matriki z uporabo razvrščanja z združitvijo
- Poiščite nesortirano podmatriko z najmanjšo dolžino, pri čemer je razvrščena celotna matrika
- Razvrsti skoraj razvrščeno (ali K razvrščeno) matriko
- Razvrsti n števil v območju od 0 do n^2 – 1 v linearnem času
- Razvrstite matriko glede na vrstni red, ki ga določa druga matrika
- Poiščite točko, kjer se največji intervali prekrivajo
- Poiščite permutacijo, ki povzroči najslabši primer razvrščanja z združitvijo
- Razvrsti vektor parov v naraščajočem vrstnem redu v C++
- Najmanjše število zamenjav, da sta dve matriki enaki
- Problem distribucije čokolade
- Permutirajte dve matriki tako, da je vsota vsakega para večja ali enaka K
- Bucket Sort Za razvrščanje matrike z negativnimi števili
- Razvrstite matriko v naraščajočem vrstnem redu
- Pretvorite matriko v pomanjšano obliko z uporabo vektorja parov
- Trojček najmanjše razlike iz treh nizov
- Preverite, ali je mogoče razvrstiti matriko z dovoljeno pogojno zamenjavo sosednjih
Težke težave pri razvrščanju:
- Poiščite število presežkov vsakega elementa v matriki
- Štejte različne pojavitve kot podzaporedje
- Preštejte najmanjše število podnaborov (ali podzaporedij) z zaporednimi številkami
- Izberite k elementov niza tako, da je razlika med maksimumom in minimumom čim manjša
- Najmanjša zamenjava, potrebna za pretvorbo binarnega drevesa v binarno iskalno drevo
- K-ti najmanjši element po odstranitvi nekaterih celih števil iz naravnih števil
- Največja razlika med frekvenco dveh elementov, tako da je tisti element, ki ima večjo frekvenco, prav tako večji
- Najmanjše število zamenjav za dosego permutirane matrike z največ 2 dovoljenima menjavama na levi strani
- Ugotovite, ali je mogoče narediti elemente niza enake z eno zunanjo številko
- Razvrsti matriko po uporabi podane enačbe
- Natisnite niz nizov v razvrščenem vrstnem redu brez kopiranja enega niza v drugega
Hitre povezave :
- 'Težave za vadbo' pri razvrščanju
- 'Kvizi' o razvrščanju
Priporočeno:
- Naučite se podatkovne strukture in algoritmov | Vadnica DSA