Saturs[Paslēpt][Rādīt]
Datorzinātne ir saistīta ar algoritmu un datu struktūru sarežģītības izpratni.
Jums ir saraksts ar vienumiem, kas ir jākārto, bet jums nav laika vai resursu, lai izmantotu sarežģītāku šķirošanas algoritmu.
Ievietošanas kārtošana ir viens no vienkāršākajiem kārtošanas algoritmiem, taču lieliem sarakstiem tā var būt lēna.
Vienkārša ieviešana un izpratne ir padarījusi šo metodi par iecienītu programmētāju vidū. Tas ir lieliski piemērots maziem sarakstiem vai gadījumos, kad nepieciešams ātrs risinājums.
Šajā emuāra ierakstā mēs apskatīsim ievietošanas kārtošanas sarežģītību laikā. Šis algoritms tiek izmantots masīvu kārtošanai, un tā izpildes laiks ir O(n2). Tas nozīmē, ka laika sarežģītība palielinās līdz ar masīva lielumu.
Tomēr šis algoritms bieži var būt ātrāks nekā citi kārtošanas algoritmi, piemēram, ātrā kārtošana.
Apskatīsim sīkāk, kā darbojas ievietošanas šķirošana!
Kas ir ievietošanas kārtošanas algoritms?
Pa vienam elementam, ievietošanas kārtošana ģenerē šķirojamu masīvu, ko bieži sauc par sarakstu.
Piemēram, kārtošana tiek izmantota sarežģītās datorprogrammās, piemēram, kompilatoros, kur marķieru secība ir svarīga programmas interpretācijai.
Kā darbojas ievietošanas kārtošana?
Ja mēs izmantojam ievietošanas kārtošanu, lai kārtotu masīvu, algoritms sākas, atrodot mazāko vienumu sarakstā un ievietojot to pareizajā pozīcijā.
Pēc tam tas atrod nākamo mazāko vienumu un ievieto to pareizajā pozīcijā utt.
Algoritms darbojas, pārlūkojot sarakstu, salīdzinot katru vienumu ar to, kas ir pirms tā.
Ja vienumi atrodas nepareizā secībā, algoritms tos apmaina. Pēc tam tas pārbauda, vai saraksts ir sakārtots, un, ja ir, algoritms beidzas.
Praksē ievietošanas kārtošana bieži tiek ieviesta, izmantojot dažas koda rindiņas, padarot to par populāru izvēli mazu masīvu šķirošanai. Tomēr, izmantojot šo algoritmu, jāņem vērā laika sarežģītība.
Piemērs:
Šeit ir piemērs, kā darbojas ievietošanas kārtošana. Mēs izmantosim šādu masīvu:
1, 2, 3, 4, 5, 6
Algoritms sākas, atrodot mazāko vienumu sarakstā, kas ir 1. Pēc tam tas ievieto to pareizajā pozīcijā, pirmajā pozīcijā. Pēc tam tas atrod nākamo mazāko vienumu, kas ir 2. Tas ievieto to pareizajā pozīcijā, kas ir otrā pozīcija.
Pēc tam tas atrod nākamo mazāko vienumu, kas ir 3. Tas ievieto to pareizajā pozīcijā, kas ir trešā pozīcija.
Pēc tam tā atrod nākamo mazāko vienumu, kas ir 4. Tas ievieto to pareizajā pozīcijā, kas ir ceturtā pozīcija utt. Saraksts tagad ir sakārtots!
No piemēra redzams, ka algoritmam ir nepieciešami seši salīdzinājumi un mijmaiņas, lai sakārtotu sarakstu. Tas ir tāpēc, ka tas aizņem n2 salīdzinājumi un mijmaiņas darījumi, lai sakārtotu n vienumu sarakstu. Šajā gadījumā n=6.
Kā uzlabot ievietošanas kārtošanas laika sarežģītību?
Kamēr ievietošanas kārtošanas izpildlaiks ir O(n2), to var uzlabot, izmantojot labāku šķirošanas algoritmu, piemēram, ātro kārtošanu.
Quicksort ir O(n log n) izpildlaiks, kas ir daudz ātrāks nekā O(n2).
Tomēr dažos gadījumos ievietošanas šķirošana var būt ātrāka nekā ātrā kārtošana.
Piemēram, ja saraksts jau ir sakārtots, ievietošanas kārtošana prasīs mazāk laika nekā ātrā kārtošana.
Praksē ievietošanas kārtošana bieži tiek ieviesta, izmantojot dažas koda rindiņas, padarot to par populāru izvēli mazu masīvu šķirošanai.
Tomēr, izmantojot šo algoritmu, jāņem vērā laika sarežģītība.
Laika sarežģītības
Sliktākā gadījuma sarežģītība O(n2):
Laika sarežģītība palielinās līdz ar masīva lielumu. Tas aizņem n2 salīdzinājumi un mijmaiņas darījumi, lai sakārtotu n vienumu sarakstu.
Piemēram, ja mums ir masīvs ar izmēru 1000, algoritms veiks 1,000,000 XNUMX XNUMX salīdzinājumu un mijmaiņas darījumu, lai kārtotu masīvu.
Labākā gadījuma sarežģītība O(n):
Laika sarežģītība ir tāda pati kā ievades masīva lielums. es
t ir nepieciešami n salīdzinājumi un mijmaiņas darījumi, lai sakārtotu n vienumu sarakstu. Piemēram, apsveriet 5. izmēra masīvu. Lai sakārtotu masīvu, algoritms veiks piecus salīdzinājumus un mijmaiņas darījumus.
Vidējā gadījuma sarežģītība O(n2):
Laika sarežģītība šajā gadījumā ir starp sliktāko un labāko gadījumu sarežģītību.
Tas aizņem n2 salīdzinājumi un mijmaiņas darījumi, lai sakārtotu n vienumu sarakstu.
Tādējādi ievietošanas šķirošana ir stabils šķirošanas algoritms.
Kāpēc ievietošanas kārtošana ir stabila?
Ievietošanas kārtošana ir stabila, jo tā saglabā vienādu elementu secību ievades masīvā.
Tas ir svarīgi daudzām lietojumprogrammām, piemēram, datu izguvei vai finanšu analīzei. Piemēram, ja mums ir divi skaitļu saraksti un mēs vēlamies tos salīdzināt, mums ir jāpārliecinās, ka elementu secība ir saglabāta.
Ja saraksti nav sakārtoti, mēs tos nesalīdzināsim precīzi.
Atstāj atbildi