logo

Ātrā kārtošana vs sapludināšanas kārtošana

Ātra šķirošana ir iekšējs algoritms, kura pamatā ir “skaldi un valdi” stratēģija. Šajā:

  • Elementu masīvs tiek sadalīts daļās atkārtoti, līdz to vairs nav iespējams sadalīt.
  • Tas ir pazīstams arī kā nodalījumu apmaiņas kārtošana .
  • Elementu sadalīšanai tiek izmantots galvenais elements (rakurss).
  • Vienā kreisajā nodalījumā ir visi tie elementi, kas ir mazāki par šarnīra punktu, un viens labais nodalījums satur visus elementus, kas ir lielāki par galveno elementu.

ātrā šķirošana Apvienot kārtošanu ir ārējs algoritms, kura pamatā ir “skaldi un valdi” stratēģija. Šajā:

  • Elementi tiek sadalīti divos apakšmasīvos (n/2) atkal un atkal, līdz paliek tikai viens elements.
  • Sapludināšanas kārtošana izmanto papildu krātuvi, lai kārtotu papildu masīvu.
  • Sapludināšanas kārtošana izmanto trīs masīvus, kur divi tiek izmantoti katras puses glabāšanai, bet trešo ārējo izmanto, lai saglabātu galīgo sakārtoto sarakstu, apvienojot citus divus, un katrs masīvs tiek sakārtots rekursīvi.
  • Beidzot visi apakšmasīvi tiek apvienoti, lai masīva elementa lielums būtu “n”.

Apvienot-kārtot-apmācība



Ātrā kārtošana vs sapludināšanas kārtošana

    Elementu sadalīšana masīvā : sapludināšanas kārtošanā masīvs tiek sadalīts tikai 2 daļās (t.i., n/2). tā kā ātrās kārtošanas gadījumā masīvs tiek sadalīts jebkurā proporcijā. Ātrajā kārtošanā nav pienākuma sadalīt elementu masīvu vienādās daļās. Sliktākā gadījuma sarežģītība: ātrās šķirošanas sliktākā gadījuma sarežģītība ir O(n^2), jo sliktākajā stāvoklī ir nepieciešams daudz salīdzinājumu. tā kā sapludināšanas kārtošanā sliktākajam un vidējam gadījumam ir vienāda sarežģītība O(n log n). Izmantošana ar datu kopām : sapludināšanas kārtošana var labi darboties jebkura veida datu kopās neatkarīgi no to lieluma (lielas vai mazas). tā kā ātrā kārtošana nevar labi darboties ar lielām datu kopām. Nepieciešama papildu krātuves vieta : sapludināšanas kārtošana nav paredzēta, jo tai ir nepieciešama papildu vieta atmiņā, lai saglabātu papildu masīvus. tā kā ātrā šķirošana ir ieviesta, jo tai nav nepieciešama papildu krātuve. Efektivitāte: sapludināšanas kārtošana ir efektīvāka un darbojas ātrāk nekā ātrā kārtošana, ja ir lielāks masīva izmērs vai datu kopas. tā kā ātrā kārtošana ir efektīvāka un darbojas ātrāk nekā sapludināšanas kārtošana mazāka masīva izmēra vai datu kopu gadījumā. Kārtošanas metode: ātrā kārtošana ir iekšēja kārtošanas metode, kurā dati tiek kārtoti galvenajā atmiņā. tā kā sapludināšanas kārtošana ir ārēja kārtošanas metode, kurā kārtojamos datus nevar ievietot atmiņā un šķirošanai ir nepieciešama papildu atmiņa. Stabilitāte: sapludināšanas kārtošana ir stabila, jo divi elementi ar vienādu vērtību sakārtotajā izvadē parādās tādā pašā secībā, kādā tie bija ievades nešķirotajā masīvā. tā kā šajā scenārijā ātrā kārtošana ir nestabila. Bet to var padarīt stabilu, izmantojot dažas izmaiņas kodā. Vēlamais : Ātrā kārtošana ir vēlama masīviem. turpretī saistītajiem sarakstiem priekšroka tiek dota sapludināšanas kārtošanai. Atsauces vieta: Quicksort ir laba kešatmiņas atrašanās vieta, un tas padara ātro kārtošanu ātrāku nekā sapludināšanas kārtošanu (daudzos gadījumos, piemēram, virtuālās atmiņas vidē).
Pamats salīdzināšanai Ātrā kārtošana Sapludināt Kārtot
Elementu sadalījums masīvā Elementu masīva sadalīšana notiek jebkurā proporcijā, kas nav obligāti sadalīta uz pusēm. Sapludināšanas kārtošanā masīvs tiek sadalīts tikai 2 daļās (t.i., n/2).
Sliktākā gadījuma sarežģītība O(n^2) O(nelogn)
Darbojas labi uz Tas labi darbojas mazākā masīvā Tas lieliski darbojas jebkura izmēra masīvā
Izpildes ātrums Tas darbojas ātrāk nekā citi šķirošanas algoritmi mazām datu kopām, piemēram, atlases kārtošanai utt Tam ir konsekvents ātrums jebkura izmēra datiem
Nepieciešama papildu uzglabāšanas vieta Mazāk (uz vietas) Vairāk (nav uz vietas)
Efektivitāte Neefektīvi lielākiem masīviem Efektīvāks
Šķirošanas metode Iekšējā Ārējais
Stabilitāte Nav stabils Stabils
Vēlams priekš par Arrays Saistītajiem sarakstiem
Atsauces vieta labi nabadzīgs
Lielais darbs Galvenais darbs ir sadalīt masīvu divos apakšmasīvos pirms to rekursīvās šķirošanas. Galvenais darbs ir apvienot divus apakšmasīvus pēc to rekursīvās šķirošanas.
Masīva dalījums Masīva sadalīšana apakšmasīvos var būt vai nebūt līdzsvarota, jo masīvs ir sadalīts ap šarnīra punktu. Masīva sadalīšana apakšmasīvā vienmēr ir līdzsvarota, jo tā sadala masīvu tieši vidū.
Metode Ātrā šķirošana ir šķirošanas metode vietā. Sapludināšanas kārtošana nav vietā – šķirošanas metode.
Apvienošana Ātrajai kārtošanai nav nepieciešama skaidra sakārtoto apakšmasīvu sapludināšana; drīzāk apakšmasīvi sadalīšanas laikā tika pareizi pārkārtoti. Sapludināšanas kārtošana veic skaidru sakārtoto apakšmasīvu sapludināšanu.
Kosmoss Ātrajai kārtošanai nav nepieciešama papildu vieta masīvā. Lai apvienotu sakārtotus apakšmasīvus, ir nepieciešams pagaidu masīvs, kura izmērs ir vienāds ar ievades elementu skaitu.