Table of Contents[Qari][muuji]
Sayniska kombuyuutarku waa dhammaan ku saabsan fahamka kakanaanta algorithms iyo qaababka xogta.
Waxaad haysataa liis shay ah oo u baahan in la kala saaro, laakiin ma haysatid wakhti ama agab aad ku isticmaasho algorithm kala soocida kakan.
Kala-soocidda gelitaanka waa mid ka mid ah algorithm-yada kala-soocidda ugu fudud, laakiin waxay noqon kartaa mid gaabis ah liisaska waaweyn.
Hirgelinta fudud iyo fahamka ayaa habkan ka dhigay mid ay ugu jecel yihiin barnaamijyada. Waxay ku habboon tahay liisaska yaryar ama markaad u baahan tahay xal degdeg ah.
Boostada blog-ga, waxaanu ku eegi doonaa wakhtiga adag ee kala soocida galinta. Algorithm-kan waxa loo isticmaalaa in lagu kala saaro arrays, oo waxa ay leedahay runtime O(n2). Tani waxay ka dhigan tahay in kakanaanta wakhtiga ay korodho xajmiga haynta.
Si kastaba ha ahaatee, algorithm-kani aad ayuu uga dhakhso badnaan karaa algorithms-yada kala-soocidda, sida kala-soocidda degdegga ah.
Aan si dhow u eegno sida kala-soocidda gelintadu u shaqeyso!
Waa maxay Algorithm-ka Soo-gelinta?
Hal shay markiiba, gelinta kala-soocidda ayaa soo saarta array la kala saari karo, kaas oo inta badan loo yaqaan liiska.
Tusaale ahaan, kala-soocidda waxaa lagu dabaqaa barnaamijyada kombuyuutarrada ee adag sida kombuyuutarrada, halkaasoo sida ay u kala horreeyaan ay muhiim u yihiin tarjumaada barnaamijka.
Sidee U Kala Shaqee Galintu?
Marka aan isticmaalno kala-soocidda gelinta si aan u kala saarno array, algorithm waxay ku bilaabataa in la helo shayga ugu yar ee liiska oo gelinaya booska saxda ah.
Kadibna waxay helaysaa shayga ugu yar ee xiga waxayna gelisaa booska saxda ah, iyo wixii la mid ah.
Algorithm-ku wuxuu u shaqeeyaa isagoo dhexda u galaya liiska, isbarbardhigga shay kasta iyo midka ka horreeya.
Haddii alaabadu u kala horreeyaan, algorithmisku wuu beddelaa. Kadib waxay hubisaa in liiska la kala saaray, iyo haddii ay tahay, algorithmisku wuu dhammaanayaa.
Ficil ahaan, nooca gelinta ayaa inta badan lagu fuliyaa iyadoo la adeegsanayo dhowr sadar oo kood ah, taasoo ka dhigaysa doorasho caan ah oo lagu kala soocayo habab yar yar. Si kastaba ha ahaatee, kakanaanta wakhtiga waa in la tixgeliyo marka la isticmaalayo algorithm this.
Tusaale:
Halkan waxaa ah tusaale sida kala-soocidda gelintadu u shaqeyso. Waxaan isticmaali doonaa diyaarinta soo socota:
1, 2, 3, 4, 5, 6
Algorithm waxay ku bilaabataa helitaanka shayga ugu yar ee liiska, kaas oo ah 1. Kadibna wuxuu geliyaa booska saxda ah, booska koowaad. Kadibna waxay helaysaa shayga ugu yar ee xiga, kaas oo ah 2. Waxay gelisaa booska saxda ah, taas oo ah booska labaad.
Kadib waxay helaysaa shayga ugu yar ee xiga, kaas oo ah 3. Waxay gelisaa booska saxda ah, oo ah booska saddexaad.
Kadibna waxay helaysaa shayga ugu yar ee xiga, kaas oo ah 4. Waxay gelisaa booska saxda ah, taas oo ah booska afaraad, iyo wixii la mid ah. Liiska hadda waa la kala saaray!
Waxaan ka arki karnaa tusaalaha in algorithmisku uu qaato lix isbarbardhig iyo beddelaad si uu u kala saaro liiska. Tani waa sababta oo ah waxay qaadataa n2 isbarbardhigga iyo isdhaafsiga si loo kala saaro liiska n shayada. Xaaladdan, n=6.
Sidee loo horumariyaa kala-kanaanta wakhtiga galitaanka?
Halka gelinta kala-soocidda ay leedahay wakhti runtime O(n2), waxa lagu wanaajin karaa iyadoo la isticmaalo kala-soocidda algorithm ka wanaagsan, sida kala-soocidda degdegga ah.
Quicksort waxay leedahay O(n log n) runtime, kaas oo aad uga dheereeya O(n2).
Si kastaba ha ahaatee, xaaladaha qaarkood, kala-soocidda gelinta ayaa ka dhaqso badan kala-soocidda.
Tusaale ahaan, haddii liisku mar hore habaysan yahay, kala-soocidda gelintadu waxay qaadanaysaa wakhti ka yar sidii loo kala sooci lahaa.
Ficil ahaan, nooca gelinta ayaa inta badan lagu fuliyaa iyadoo la adeegsanayo dhowr sadar oo kood ah, taasoo ka dhigaysa doorasho caan ah oo lagu kala soocayo habab yar yar.
Si kastaba ha ahaatee, kakanaanta wakhtiga waa in la tixgeliyo marka la isticmaalayo algorithm this.
Kakanaanta Waqtiga
Kakanaanta Kiiskii ugu xumaa O(n2):
Kakanaanta wakhtiga waxay kordhisaa cabbirka haynta. Waxay qaadataa n2 isbarbardhigga iyo isdhaafsiga si loo kala saaro liiska n shayada.
Tusaale ahaan, haddii aan hayno array of size 1000, algorithmisku wuxuu qaadan doonaa 1,000,000 isbarbardhigga iyo beddelashada si uu u kala saaro shaxanka.
Kakanaanta Kiis O(n):
Kakanaanta wakhtiga waxay la mid tahay cabbirka isku xidhka gelinta. I
t waxa uu qaataa is barbardhig iyo isdhaafsi si uu u kala saaro liiska n shayada. Tusaale ahaan, ka fiirso kala duwanaanta cabbirka 5. Algorithm-ku wuxuu qaadan doonaa shan isbarbardhig oo isku beddelasho si uu u kala saaro shaxanka.
Celceliska Kakanaanta Kiis O(n2):
Kakanaanta wakhtiga waxay u dhaxaysaa kakanaanta kiisaska ugu xun iyo kan ugu wanaagsan kiiskan.
Waxay qaadataa n2 isbarbardhigga iyo isdhaafsiga si loo kala saaro liiska n shayada.
Haddaba, kala-soocidda gelinta waa algorithm kala-saar deggan.
Maxay tahay sababta Gelintu u kala soocaa u xasiloon tahay?
Nooca gelintu waa mid xasiloon sababtoo ah waxay ilaalinaysaa siday u kala horreeyaan walxaha isku midka ah ee soo gelinta.
Tani waxay muhiim u tahay codsiyo badan, sida dib u soo celinta xogta ama falanqaynta maaliyadeed. Tusaale ahaan, haddii aan hayno laba liis oo tirooyin ah oo aan rabno inaan isbarbardhigno, waxaan u baahannahay inaan hubinno in habka curiyeyaasha la ilaaliyo.
Haddii liisaska aan la kala saarin, si sax ah uma barbar dhigi doono.
Leave a Reply