Kakanaanta algorithm waxay marka hore ka hadlaysaa laba ilo:
waqti
(muddada fulinta) iyo
meel bannaan
(isticmaalka xusuusta). Halka kakanaanta wakhtiga ay cabbirayso sida runtime-ku u korayo cabbirka wax-gelinta (
n
), kakanaanta booska ayaa qiimeeya isticmaalka xusuusta. Tusaale ahaan:
- Algorithm leh
O(n)
kakanaanta wakhtiga ayaa si toos ah u miisaamaysa cabbirka wax gelinta.
- Algorithm leh
O(1)
kakanaanta meel bannaan waxay isticmaashaa xusuusta joogtada ah iyadoon loo eegin cabbirka wax-gelinta.
Labada cabbirba waa lama huraan. Algorithm-ka degdega ah ayaa laga yaabaa inuu ku dhameeyo xusuusta kaydinta xogta waaweyn, halka algorithm-ka waxtarka leh ee xusuusta ay aad u gaabis u tahay codsiyada waqtiga-dhabta ah.
Hufnaantu waxay tilmaantaa suurtogalnimada. Tixgeli kala soocida liiska 10 shay iyo 10 milyan:
- A
nooc xumbo
(
O(n)
) waxaa laga yaabaa inay ku filnaan karto kaydin yar laakiin waxay noqotaa mid aan waxtar u lahayn kuwa waaweyn.
- A
isku darso
(
O(n log n)
) si xarrago leh ayuu u maareeyaa kaydka xogta waaweyn laakiin wuxuu u baahan yahay xasuus dheeraad ah.
Falanqaynta kakanaanta waxay bixisaa luqad caalami ah oo lagu barbar dhigo algorithms-yada, iyada oo meesha ka saaraysa faahfaahinta gaarka ah ee hardware-ka. Waxay awood u siisaa horumariyeyaasha inay saadaaliyaan miisaanka oo ay ka fogaadaan caqabadaha nidaamyada muhiimka ah.
Qoraallada asymptotic-ku waxay qeexayaan hab-dhaqanka xaddidan ee shaqooyinka, iyagoo siinaya gacan-gaaban ee kakanaanta. Saddexda tilmaamood ee aasaasiga ah waa:
Big O notation ayaa qeexaysa wakhtiga ama booska ugu badan ee algorithmisku qaadan doono. Tusaale ahaan:
-
O(1)
Waqtiga joogtada ah (tusaale ahaan, gelitaanka curiyaha diyaarinta ee index).
-
O(n)
Waqtiga tooska ah (tusaale, ku celcelinta liiska).
-
O(n)
: Waqtiga afar-geeska ah (tusaale, siddooyinka buulka leh ee nooca xumbo).
Big O waa mitirka inta badan la isticmaalo, maadaama ay dammaanad qaadayso saqafka waxqabadka.
Omega wuxuu qeexayaa wakhtiga ugu yar ee loo baahan yahay. Tusaale ahaan:
- Raadinta toosan ayaa leh
(1)
haddii bartilmaameedku yahay curiyaha koowaad.
Iyadoo rajo wanaagsan laga qabo, falanqaynta kiis-kii ugu fiicnayd ayaa xog yar u ah qorshaynta kiis-xumo.
Theta waxay isku daraysaa Big O iyo Omega, taasoo ka dhigan dabeecadda asymptotic ee saxda ah. Haddii algorithms-yada ugu fiican iyo kiisaska ugu xun ay isku mid yihiin:
-
(n log n)
waxay khusaysaa isku darka noocyada celceliska iyo xaaladaha ugu xun.
Tilmaamahani waxay ka fogeynayaan joogtada iyo shuruudaha hoose, iyaga oo diiradda saaraya heerarka koritaanka. Tusaale ahaan, 2n + 3n + 4 u fududeeya O(n) sababtoo ah ereyga afar-geesoodka ah ayaa ka sarreeya inta badan n .
Fahamka fasalada kakanaanta waxay caawisaa in algorithms loo kala saaro miisaan. Halkan waxaa ah kala sareyn laga bilaabo inta ugu badan ilaa ugu waxtarka yar:
Wakhtiga fulinta ama xusuusta ayaa weli ah mid aan isbeddelin sida
n
koraa
-
Tusaale
: Helitaanka qiimaha miiska xashiishka furaha.
Runtime wuxuu ku koraa logarithmically
n
.
-
Tusaale
: Raadinta binary waxay kala badh ka dhigtaa booska wax gelinta ee ku celcelin kasta.
Runtime waxay u dhigantaa qiyaas ahaan
n
.
-
Tusaale
: Raadinta toosan iyada oo loo marayo liis aan la kala soocin.
Caadi ahaan algorithms-yada kala qaybi-iyo-guulaysiga.
-
Tusaale
Isku dhafka kala-soocidda iyo kala-soocidda.
Ku celcelinta buulku waxay horseeddaa korriin qarxa.
-
Tusaale
: Kala-soocidda xumbo iyo kala-soocidda.
Runtime labanlaabmayaa iyadoo gelin kasta oo dheeraad ah.
-
Tusaale
Xisaabinta Fibonacci ee soo noqnoqota iyada oo aan la xafidin.
Algorithms-ku-saleysan ku-saleysan
-
Tusaale
: Xallinta dhibaatada iibiyaha socotada ah iyada oo loo marayo xoog-xoog.
Farqiga u dhexeeya O(n log n) iyo O(n) waxay noqotaa mid adag n = 10 : kii hore wuxuu ku fulin karaa millise seconds, halka kan dambe uu qaadan karo maalmo.
Algorithms waxay u qabtaan si kala duwan iyadoo lagu saleynayo habaynta wax gelinta. Falanqaynta dhammaan kiisaska waxay xaqiijinaysaa adkaanta:
Hash ku biirinta xogta xogta ayaa laga yaabaa inay kala doorato O(n + m) iyo isku xidhka loop buul leh ( O(nm) ) ku salaysan qaybinta xogta. Falanqaynta kiis-kii ugu xumaa waxay muhiim u tahay nidaamyada badbaadada-muhiimka ah (tusaale, software duulista), halkaasoo aan la saadaalin karin aan la aqbali karin.
Dhibaato isku mid ah ayaa lagu xallin karaa iyadoo la adeegsanayo algorithms kala duwan. Tusaale ahaan, dhibaatada raadinta qiimaha bartilmaameedka ee liiska qiyamka waxaa lagu xallin karaa iyadoo la adeegsanayo algorithms kala duwan, sida raadinta toosan, raadinta binary, ama raadinta miiska xashiishka.
Jadwalka hoose wuxuu isbarbar dhigayaa wakhtiga iyo meelaha adag ee algorithms-yadan si loo raadiyo qiimaha bartilmaameedka ee liiska n qiyamka.
Doorashada algorithm waxay ku xiran tahay xajmiga dhibka, sifooyinka gelinta, iyo ilaha la heli karo. Tusaale ahaan, haddii liisku yar yahay oo aan la kala soocin, raadinta toosan waxay noqon kartaa doorashada ugu fiican. Haddii liisku weyn yahay oo la soocay, raadinta binary waxay noqon kartaa doorashada ugu fiican. Haddii liisku weyn yahay oo aan la kala soocin, raadinta miiska xashiishka ayaa noqon karta doorashada ugu fiican.
Falanqaynta Amortized waxay celcelis ahaan waqti ku qaadataa hawlaha isku xigxiga.
-
Tusaale
: Habayn firfircooni waxay labanlaabaysaa awoodda marka ay buuxsanto. Halka hal
riixid
Hawlgalku wuu qaadan karaa
O(n)
waqtiga, kharashka la dhimay ayaa hadhay
O(1)
.
Algorithms sida
Monte Carlo
iyo
Las Vegas
u isticmaal randomness waxtarka.
-
Tusaale
: Tijaabada hore ee Miller-Rabin waxay leedahay dammaanad qaadyo macquul ah laakiin way ka dhakhso badan tahay hababka go'aaminta.
Dhibaatooyinka qaarkood (tusaale, ku qanacsanaanta Boolean) waa NP-dhameystiran , taasoo la macno ah in aanu jirin wax la yaqaan oo xal ah Cadaynta dhamaystirka NP iyada oo loo marayo dhimis waxay caawisaa kala saarista adkaanta xisaabinta.
An O(n) Algorithm-ka ururinta waxay noqon kartaa cirib-tirka xog-ururineed ee baaxadda leh, taasoo kicinaysa isbeddellada hababka qiyaasaha ah sida geedaha kd O(n log n) ).
Nidaamyada furaha dadweynaha waxay ku tiirsan yihiin adkaanta O(2) dhibaatooyinka (tusaale ahaan, isugeynta isugeynta) si looga hortago weerarada.
Matoorada wax qabad ee waqtiga-dhabta ah ayaa mudnaanta siiya O(1) algorithms ee jilitaanka fiisigiska si loo ilaaliyo 60+ FPS.
Ganacsiga-offs waa arrin:
-
Waqtiga vs. Meel bannaan
Isticmaal khariidado xashiish ah (
O(1)
eegid) qiimaha xusuusta.
-
Fududnaanta vs. Fiican
: Gelida nooc (
O(n)
) waxa laga yaabaa in laga door bidayo xog-ururinta yaryar, ee ku dhawaad la soocay.
Algorithms-ka soo noqnoqda, xidhiidhka soo noqnoqoshada moodeel runtime. Tusaale ahaan, isku-darka noocyada soo noqnoqda:
[T(n) = 2T(n/2)+O(n)] waxay go'aamisaa
O(n log n)
iyada oo loo marayo
Master Theorem
.
Tijaabada qibrada leh waxay kabaysaa falanqaynta aragtida. Aaladaha xog-ururinta (tusaale, Valgrind, perf) waxay muujinayaan cilada dhabta ah ee aduunka.
Python
def linear_sum(arr):
wadarta = 0
nambarka arr:
wadarta += tirada
wadarta soo noqoshada
def quadratic_sum(arr):
wadarta = 0
waayo waxaan ku jiraa arr:
loogu talagalay j in arr:
wadarta += i * j
wadarta soo noqoshada
Halka O(n) abstracts ka fogeeya joogtada ah, a 100n Algorithm waxa laga yaabaa inay ka gaabiyaan a 0.01n algorithm ee wax ku ool ah n .
An O(n log n) Algorithm waxaa laga yaabaa inay hoos u dhacdo O(n) waayo n = 10 sare u kaca awgeed.
Shaqada Fibonacci ee la xafiday ( O(n) meel bannaan) waxay ku burburi kartaa agabyada waaweyn, si ka duwan nooca soo noqnoqda ( O(1) meel bannaan).
Isku dheelitirka BST ( O(log n) raadinta) ayaa ka ammaan badan BST-ga caadiga ah ( O(n) kii ugu xumaa) xogta aan la aamini karin.
Falanqaynta kakanaanta algorithm waa kombuyuutar haga horumariyeyaasha iyada oo loo marayo muuqaalka baaxadda leh ee waxtarka xisaabinta. Ardayda MTSC7196, haynta edbintan waxay buundooyinka aqoonta aragtida iyo khibradda la taaban karo. Iyaga oo kala saaraya wakhtiga iyo shuruudaha booska, isbarbardhigga xudduudaha asymptotic, iyo socodka ganacsiga-dhabta ah ee aduunka, horumariyayaashu waxay farsamayn karaan habab si xarago leh oo u fuliya si la isku halleyn karo.
Xilliga lagu qeexay hal-abuurnimada xogtu horseedday, awoodda lagu kala garto inta u dhaxaysa a O(n log n) iyo ah O(n) Xalku ma aha tacliintu waa muhiim. Markaad ku sii socoto waxbarashadaada, xasuusnoow: falanqaynta kakanaanta maaha oo keliya tirooyinka iyo calaamadaha. Waxay ku saabsan tahay fahamka garaaca wadnaha ee xisaabinta lafteeda.
Ilaa iyo 2019, la kulma dahabka dahabka ah waxaa lagu aasaasay Guangzhou, Shiinaha, saldhigga wax soo saarka ee dahabka ah. Waxaan nahay naqshad isku dhafan ganacsatada miisaaniyadeed, wax soo saar iyo iibin.
+86-19924726359/+86-13431083798
Dabaqa 13, West Tower of Gome Smart City, Maya. 33 Juxinin Street, degmada Haisum, Guangzhou, Shiinaha.