Kazalo[Skrij][Pokaži]
Računalništvo je namenjeno razumevanju kompleksnosti algoritmov in podatkovnih struktur.
Imate seznam predmetov, ki jih je treba razvrstiti, vendar nimate časa ali sredstev za uporabo bolj zapletenega algoritma razvrščanja.
Razvrščanje vstavljanja je eden najpreprostejših algoritmov razvrščanja, vendar je lahko počasno za velike sezname.
Zaradi enostavne izvedbe in razumevanja je ta metoda priljubljena med programerji. Popoln je za majhne sezname ali ko potrebujete hitro rešitev.
V tej objavi v blogu si bomo ogledali časovno zapletenost razvrščanja vstavljanja. Ta algoritem se uporablja za razvrščanje nizov in ima čas izvajanja O(n2). To pomeni, da se časovna kompleksnost povečuje z velikostjo matrike.
Vendar pa je ta algoritem lahko pogosto hitrejši od drugih algoritmov razvrščanja, kot je hitro razvrščanje.
Oglejmo si podrobneje, kako deluje razvrščanje vstavljanja!
Kaj je algoritem za razvrščanje vstavljanja?
En element naenkrat, razvrščanje z vstavljanjem ustvari razvrščeno matriko, ki se pogosto imenuje seznam.
Na primer, razvrščanje se uporablja v zapletenih računalniških programih, kot so prevajalniki, kjer je vrstni red žetonov pomemben za interpretacijo programa.
Kako deluje razvrščanje vstavljanja?
Ko za razvrščanje matrike uporabljamo razvrščanje z vstavljanjem, se algoritem začne tako, da poišče najmanjši element na seznamu in ga vstavi na pravilen položaj.
Nato poišče naslednji najmanjši predmet in ga vstavi v pravilen položaj itd.
Algoritem deluje tako, da se vrti po seznamu in primerja vsak element s tistim, ki je pred njim.
Če so elementi v napačnem vrstnem redu, jih algoritem zamenja. Nato preveri, ali je seznam razvrščen, in če je, se algoritem konča.
V praksi se razvrščanje z vstavljanjem pogosto izvaja z uporabo nekaj vrstic kode, zaradi česar je priljubljena izbira za razvrščanje majhnih nizov. Vendar pa je treba pri uporabi tega algoritma upoštevati časovno zapletenost.
primer:
Tukaj je primer, kako deluje razvrščanje vstavljanja. Uporabili bomo naslednjo matriko:
1, 2, 3, 4, 5, 6
Algoritem se začne z iskanjem najmanjšega elementa na seznamu, ki je 1. Nato ga vstavi na pravilen položaj, prvi položaj. Nato poišče naslednji najmanjši element, ki je 2. Vstavi ga v pravilen položaj, to je drugi položaj.
Nato poišče naslednji najmanjši element, ki je 3. Vstavi ga v pravilen položaj, to je tretji položaj.
Nato poišče naslednji najmanjši element, ki je 4. Vstavi ga v pravilen položaj, to je četrti položaj, itd. Seznam je zdaj urejen!
Iz primera lahko vidimo, da algoritem zahteva šest primerjav in zamenjav, da razvrsti seznam. To je zato, ker traja n2 primerjave in zamenjave za razvrščanje seznama n elementov. V tem primeru je n=6.
Kako izboljšati zapletenost časa razvrščanja vstavljanja?
Medtem ko ima razvrščanje vstavljanja čas izvajanja O(n2), ga je mogoče izboljšati z uporabo boljšega algoritma razvrščanja, kot je hitro razvrščanje.
Quicksort ima čas izvajanja O(n log n), ki je veliko hitrejši od O(n2).
Vendar pa je v nekaterih primerih lahko razvrščanje vstavljanja hitrejše od hitrega razvrščanja.
Na primer, če je seznam že urejen, bo razvrščanje vstavljanja trajalo manj časa kot hitro razvrščanje.
V praksi se razvrščanje z vstavljanjem pogosto izvaja z uporabo nekaj vrstic kode, zaradi česar je priljubljena izbira za razvrščanje majhnih nizov.
Vendar pa je treba pri uporabi tega algoritma upoštevati časovno zapletenost.
Časovne zapletenosti
Najslabši primer zapletenosti O(n2):
Časovna kompleksnost se povečuje z velikostjo matrike. Potrebno je n2 primerjave in zamenjave za razvrščanje seznama n elementov.
Na primer, če imamo matriko velikosti 1000, bo algoritem potreboval 1,000,000 primerjav in zamenjav, da razvrsti matriko.
Najboljša zapletenost primera O(n):
Časovna kompleksnost je enaka velikosti vhodnega niza. jaz
t potrebuje n primerjav in zamenjav, da razvrsti seznam n elementov. Upoštevajte na primer matriko velikosti 5. Algoritem bo potreboval pet primerjav in zamenjav, da razvrsti matriko.
Povprečna zapletenost primera O(n2):
Časovna zapletenost je v tem primeru med najslabšim in najboljšim primerom.
Potrebno je n2 primerjave in zamenjave za razvrščanje seznama n elementov.
Tako je razvrščanje z vstavljanjem stabilen algoritem razvrščanja.
Zakaj je razvrščanje vstavljanja stabilno?
Razvrščanje vstavljanja je stabilno, ker ohranja vrstni red enakih elementov v vhodnem nizu.
To je pomembno za številne aplikacije, kot je pridobivanje podatkov ali finančna analiza. Na primer, če imamo dva seznama številk in ju želimo primerjati, moramo poskrbeti, da je vrstni red elementov ohranjen.
Če seznami niso razvrščeni, jih ne bomo natančno primerjali.
Pustite Odgovori