Isiqulatho[Fihla][Bonisa]
Isayensi yekhompyuter imalunga nokuqonda ubunzima be-algorithms kunye nezakhiwo zedatha.
Unoluhlu lwezinto ezifuna ukulungiswa, kodwa awunalo ixesha okanye izixhobo zokusebenzisa i-algorithm yokuhlela entsonkothileyo.
Ukuhlelwa kofakelo yenye yezona ndlela zilula zokumisela i-algorithms, kodwa inokucotha kwizintlu ezinkulu.
Ukuphunyezwa okulula kunye nokuqonda kwenze le ndlela ibe yintandokazi phakathi kwabaprogram. Ifanelekile kwizintlu ezincinci okanye xa ufuna isisombululo esikhawulezayo.
Kule post yebhlog, siza kujonga ixesha elintsonkothileyo lokuhlelwa kokufaka. Le algorithm isetyenziselwa ukuhlela uluhlu, kwaye inexesha lokuqhuba le-O (n2). Oku kuthetha ukuba ubunzima bexesha buyanda kunye nobukhulu boluhlu.
Nangona kunjalo, le algorithm inokukhawuleza rhoqo kunezinye ii-algorithms zokuhlela, ezifana nohlobo olukhawulezayo.
Makhe sijonge ngakumbi indlela ukuhlelwa kofakelo olusebenza ngayo!
Yintoni i-Algorithm yoHlelo lokuFaka?
Into enye ngexesha, uhlobo lofakelo luvelisa uluhlu olulungelelanisiweyo, oluhlala lubizwa ngokuba luluhlu.
Ngokomzekelo, ukuhlelwa kusetyenziswa kwiinkqubo zekhompyutheni eziyinkimbinkimbi ezifana nabaqulunqi, apho umyalelo wamathokheni ubalulekile ekutolikeni kweprogram.
UFakelo Luhlela Njani Umsebenzi?
Xa sisebenzisa uhlobo lofakelo ukulungisa uluhlu, i-algorithm iqala ngokufumana eyona nto incinci kuluhlu kwaye iyifake kwindawo echanekileyo.
Emva koko ifumana eyona nto incinci ilandelayo kwaye iyifake kwindawo echanekileyo, njalo njalo.
I-algorithm isebenza ngokukrola kuluhlu, uthelekisa into nganye naleyo iza phambi kwayo.
Ukuba izinto zingolandelelwano olungalunganga, i-algorithm iyatshintshisa. Ijonga ke ukuba uluhlu luhlelwe, kwaye ukuba lulo, i-algorithm iyaphela.
Ngokwesiqhelo, uhlobo lofakelo lusoloko luphunyezwa kusetyenziswa imigca embalwa yekhowudi, iyenza ibe lukhetho oludumileyo lokuhlela uluhlu oluncinci. Nangona kunjalo, ubunzima bexesha kufuneka buthathelwe ingqalelo xa usebenzisa le algorithm.
Umzekelo:
Nanku umzekelo wendlela ukuhlelwa kofakelo olusebenza ngayo. Siza kusebenzisa olu luhlu lulandelayo:
1, 2, 3, 4, 5, 6
I-algorithm iqala ngokufumana into encinci kuluhlu, eyi-1. Emva koko ifaka kwindawo echanekileyo, indawo yokuqala. Emva koko ifumana eyona nto incinci ilandelayo, eyi-2. Iyifaka kwindawo echanekileyo, eyindawo yesibini.
Emva koko ifumana eyona nto incinci ilandelayo, eyi-3. Iyifaka kwindawo echanekileyo, ekwindawo yesithathu.
Emva koko ifumana into encinci elandelayo, eyi-4. Iyifaka kwindawo echanekileyo, eyindawo yesine, njalo njalo. Uluhlu ngoku luhleliwe!
Sinokubona kumzekelo ukuba i-algorithm ithatha uthelekiso oluthandathu kunye nokutshintshanisa ukuhlenga uluhlu. Oku kungenxa yokuba kuthatha n2 uthelekiso kunye nokutshintshanisa ukuhlela uluhlu lwezinto ze-n. Kule meko, n=6.
Indlela yokuphucula ukuHlukana kweXesha lokuFaka?
Ngelixa uhlobo lofakelo lunexesha le-O(n2), inokuphuculwa ngokusebenzisa i-algorithm yokhetho engcono, efana ne- quicksort.
I-Quicksort ine-O(n log n) yexesha lokusebenza, ekhawuleza kakhulu kuno-O(n2).
Nangona kunjalo, kwezinye iimeko, ukuhlelwa kokufaka kunokukhawuleza kunokulungisa ngokukhawuleza.
Umzekelo, ukuba uluhlu sele lulungelelanisiwe, ukuhlelwa kofakelo kuyakuthatha ixesha elingaphantsi kunohlobo olukhawulezayo.
Ngokwesiqhelo, uhlobo lofakelo lusoloko luphunyezwa kusetyenziswa imigca embalwa yekhowudi, iyenza ibe lukhetho oludumileyo lokuhlela uluhlu oluncinci.
Nangona kunjalo, ubunzima bexesha kufuneka buthathelwe ingqalelo xa usebenzisa le algorithm.
Ixesha Elintsonkothileyo
Eyona meko imbi kakhulu ye-O(n2):
Ubunzima bexesha buyanda kunye nobukhulu boluhlu. Kuthatha n2 uthelekiso kunye nokutshintshanisa ukuhlela uluhlu lwezinto ze-n.
Umzekelo, ukuba sinoluhlu lobungakanani be-1000, i-algorithm iyakuthatha i-1,000,000 yothelekiso kunye ne-swaps ukuhlela uluhlu.
Eyona meko iLungileyo iO(n):
Ubunzima bexesha bufana nobukhulu boluhlu lwegalelo. I
t kuthatha n uthelekiso kunye nokutshintshanisa ukuhlela uluhlu lwezinto ze-n. Ngokomzekelo, qwalasela uluhlu lwesayizi 5. I-algorithm iya kuthatha uthelekiso oluhlanu kunye nokutshintshanisa ukuhlenga uluhlu.
I-Avareji yeCase Complexity O(n2):
Ubunzima bexesha buphakathi kwezona meko zinzima nezingcono kakhulu kule meko.
Kuthatha n2 uthelekiso kunye nokutshintshanisa ukuhlela uluhlu lwezinto ze-n.
Ngaloo ndlela, ukuhlelwa kofakelo yi-algorithm yokuhlela ezinzileyo.
Kutheni uHlelo loFakelo luzinzile?
Uhlobo lofakelo luzinzile kuba lugcina ulandelelwano lwezinto ezilinganayo kuluhlu lwegalelo.
Oku kubalulekile kwizicelo ezininzi, ezifana nokubuyiswa kwedatha okanye uhlalutyo lwemali. Umzekelo, ukuba sinezintlu ezimbini zamanani kwaye sifuna ukuwathelekisa, kufuneka siqinisekise ukuba ulandelelwano lwamanani lugciniwe.
Ukuba izintlu azihlelwanga, asiyi kuzithelekisa ngokuchanekileyo.
Shiya iMpendulo