Upangaji wa Kiputo dhidi ya Upangaji wa Uingizaji
Kupanga viputo ni algoriti ya kupanga ambayo hufanya kazi kwa kupitia orodha ili kupangwa mara kwa mara huku ikilinganisha jozi za vipengee vilivyo karibu. Ikiwa jozi ya vipengee viko katika mpangilio mbaya hubadilishwa ili kuviweka katika mpangilio sahihi. Upitishaji huu unarudiwa hadi hakuna ubadilishaji zaidi unaohitajika. Upangaji wa uwekaji pia ni algoriti ya kupanga, ambayo hufanya kazi kwa kuingiza kipengele katika orodha ya ingizo katika nafasi sahihi katika orodha ambayo tayari imepangwa. Utaratibu huu unatumika mara kwa mara hadi orodha itakapopangwa.
Aina ya Mapovu ni nini?
Kupanga viputo ni algoriti ya kupanga ambayo hufanya kazi kwa kupitia orodha ili kupangwa mara kwa mara huku ikilinganisha jozi za vipengee vilivyo karibu. Ikiwa jozi ya vipengee viko katika mpangilio mbaya hubadilishwa ili kuviweka katika mpangilio sahihi. Upitishaji huu unarudiwa hadi hakuna ubadilishaji zaidi unaohitajika (ambayo inamaanisha kuwa orodha imepangwa). Kwa kuwa vipengee vidogo kwenye orodha huja juu huku kiputo kikija juu, hupewa jina la aina ya kiputo. Upangaji wa Bubble ni algoriti rahisi sana ya kupanga lakini ina uchangamano wa wastani wa wakati wa O(n2) wakati wa kupanga orodha yenye vipengele vya n. Kutokana na hili, aina ya Bubble haifai kwa orodha za kupanga na idadi kubwa ya vipengele. Lakini kwa sababu ya urahisi wake, upangaji wa viputo hufunzwa wakati wa utangulizi wa algoriti.
Aina ya Uingizaji ni nini?
Aina ya uwekaji ni algoriti nyingine ya kupanga, ambayo hufanya kazi kwa kuingiza kipengele katika orodha ya ingizo katika nafasi sahihi katika orodha (ambayo tayari imepangwa). Utaratibu huu unatumika mara kwa mara hadi orodha itakapopangwa. Katika aina ya uingizaji, upangaji unafanywa mahali. Kwa hivyo baada ya ith iteration ya algoriti, maingizo i+1 ya kwanza kwenye orodha yatapangwa na orodha iliyosalia haitapangwa. Katika kila marudio, kipengele cha kwanza katika sehemu ambayo haijapangwa ya orodha itachukuliwa na kuingizwa mahali sahihi katika sehemu iliyopangwa ya orodha. Aina ya uwekaji ina uchangamano wa wastani wa wakati wa herufi ya O(n2). Kutokana na hili, upangaji wa uwekaji pia haufai kwa kupanga orodha kubwa.
Kuna tofauti gani kati ya Upangaji Viputo na Upangaji wa Kuingiza?
Ingawa algoriti zote mbili za kupanga na uwekaji wa kiputo zina utata wa wastani wa wakati wa kipochi wa O(n2), upangaji wa viputo karibu kila wakati hudumiwa vyema na upangaji wa uwekaji. Hii ni kwa sababu ya idadi ya ubadilishaji unaohitajika na algoriti mbili (aina za Bubble zinahitaji ubadilishaji zaidi). Lakini kwa sababu ya unyenyekevu wa aina ya Bubble, saizi yake ya nambari ni ndogo sana. Pia kuna lahaja ya aina ya kuingiza inayoitwa aina ya ganda, ambayo ina ugumu wa wakati wa O(n3/2), ambayo ingeiruhusu kutumika kivitendo. Zaidi ya hayo, upangaji wa uwekaji ni mzuri sana kwa kupanga orodha "zinazokaribia kupangwa", ikilinganishwa na upangaji wa viputo.