info@meetujewelry.com
+86-19924726359 / +86-13431083798
Flækjustig reiknirits fjallar aðallega um tvær auðlindir:
tími
(framkvæmdartími) og
rými
(minnisnotkun). Þó að tímaflækjustig mæli hvernig keyrslutími vex með stærð inntaks (
n
), rúmflækjustig metur minnisnotkun. Til dæmis:
- Reiknirit með
O(n)
Tímaflækjustig kvarðast línulega með stærð inntaks.
- Reiknirit með
O(1)
Rúmsflækjustig notar fast minni óháð inntaksstærð.
Báðir mælikvarðarnir eru nauðsynlegir. Hraður reiknirit gæti tæmt minni í stórum gagnasöfnum, en minnissparandi reiknirit gæti verið of hægur fyrir rauntímaforrit.
Hagkvæmni ræður raunhæfni. Íhugaðu að raða lista með 10 atriðum samanborið við 10 milljónir:
- A
loftbóluflokkun
(
O(n)
) gæti nægt fyrir lítil gagnasöfn en verður óframkvæmanlegt fyrir stór gagnasöfn.
- A
sameina röðun
(
O(n log n)
) meðhöndlar stærri gagnasöfn vel en krefst meira minnis.
Flækjustigsgreining býður upp á alhliða tungumál til að bera saman reiknirit og dregur úr smáatriðum sem tengjast vélbúnaði. Það gerir forriturum kleift að spá fyrir um stigstærð og forðast flöskuhálsa í mikilvægum kerfum.
Asymptotískar táknanir lýsa takmörkunarhegðun föllum og bjóða upp á styttingu fyrir flækjustig. Þrjár helstu táknmyndirnar eru:
Stór O táknun skilgreinir hámarkstíma eða -rými sem reiknirit mun taka. Til dæmis:
-
O(1)
: Fasti tími (t.d. aðgangur að fylkisstak með vísitölu).
-
O(n)
Línulegur tími (t.d. að endurtaka sig í gegnum lista).
-
O(n)
Ferningstími (t.d. innfelldar lykkjur í loftbóluröðun).
Stóra O er algengasta mælikvarðinn þar sem hann tryggir afkastamörk.
Omega lýsir lágmarkstíma sem þarf. Til dæmis:
- Línuleg leit hefur
(1)
ef markmiðið er fyrsta þátturinn.
Þótt bjartsýn sé, þá er greining á bestu mögulegu tilfellum minna upplýsandi fyrir áætlanagerð um verstu mögulegu tilfelli.
Þeta sameinar stóra O og omega, sem táknar nákvæmlega asymptotíska hegðun. Ef bestu og verstu tilvik reiknirits eru þau sömu:
-
(n log n)
á við um að sameina flokka meðaltal og verstu hugsanlegu atburðarásir.
Þessar táknanir fjarlægja fasta og lægri stigs liði og einbeita sér að vaxtarhraða. Til dæmis, 2n + 3n + 4 einfaldar til O(n) vegna þess að annars stigs liðurinn ræður ríkjum fyrir stór n .
Að skilja flækjustigsflokka hjálpar til við að flokka reiknirit eftir stigstærð. Hér er stigveldi frá skilvirkustu til minnstu skilvirku:
Keyrslutími eða minni helst óbreytt þar sem
n
vex.
-
Dæmi
Aðgangur að gildi í kjötkássutöflu með lykli.
Keyrslutími vex lógaritmískt með
n
.
-
Dæmi
Tvöföld leit helmingar inntaksrýmið í hverri ítrun.
Keyrslutími kvarðast í réttu hlutfalli við
n
.
-
Dæmi
Línuleg leit í gegnum óraðaðan lista.
Algengt í deila-og-drottna reikniritum.
-
Dæmi
Sameina röðun og hrúguröðun.
Innfelldar ítrekanir leiða til sprengifims vaxtar.
-
Dæmi
Bóluröðun og valröðun.
Keyrslutími tvöfaldast með hverri viðbótarinntaki.
-
Dæmi
Endurkvæm Fibonacci-útreikningur án minnisvinnslu.
Reiknirit byggð á umröðun.
-
Dæmi
Að leysa vandamálið með ferðasölumenn með hörku afli.
Munurinn á milli O(n log n) og O(n) verður harkalegur fyrir n = 10 : hið fyrra gæti keyrt á millisekúndum, en hið síðara gæti tekið daga.
Reiknirit virka mismunandi eftir stillingum inntaks. Að greina öll mál tryggir áreiðanleika:
Fyrirspurnarfínstilling gagnagrunns gæti valið á milli kjöttengingar ( O(n + m) ) og innfelld lykkjutenging ( O(nm) ) byggt á gagnadreifingu. Versta hugsanlega atburðarás er mikilvæg fyrir öryggistengd kerfi (t.d. hugbúnað fyrir flug), þar sem ófyrirsjáanleiki er óásættanlegur.
Hægt er að leysa sama vandamálið með mismunandi reikniritum. Til dæmis er hægt að leysa vandamálið við að leita að markgildi í lista af gildum með mismunandi reikniritum, svo sem línulegri leit, tvíundarleit eða leit með kjöttöflu.
Taflan hér að neðan ber saman tíma- og rúmflækjustig þessara reiknirita til að leita að markgildi í lista af n gildi.
Val á reiknirit fer eftir stærð vandamálsins, eiginleikum inntaks og tiltækum úrræðum. Til dæmis, ef listinn er lítill og óraðaður, gæti línuleg leit verið besti kosturinn. Ef listinn er stór og raðaður gæti tvíundarleit verið besti kosturinn. Ef listinn er stór og óraðaður gæti leit í kjöttöflu verið besti kosturinn.
Afskrifuð greining meðaltalstíma yfir röð aðgerða.
-
Dæmi
Kvikar fylki tvöfalda afkastagetu þegar þau eru full. Þó að einn
ýta
aðgerð gæti tekið
O(n)
tímann helst afskrifaða kostnaðurinn
O(1)
.
Reiknirit eins og
Monte Carlo
og
Las Vegas
nota handahófskenndar aðferðir til að auka skilvirkni.
-
Dæmi
Frumstæðnispróf Miller-Rabin hefur líkindafræðilegar ábyrgðir en er hraðara en ákvörðunaraðferðir.
Sum vandamál (t.d. Boolean fullnægjandi hæfni) eru NP-fullkomið , sem þýðir að engin þekkt margliðulausn í tíma er til. Að sanna heilleika NP með afleiðingum hjálpar til við að flokka reiknihörku.
An O(n) Þyrpingarreiknirit gæti orðið flöskuháls fyrir gríðarstór gagnasöfn og leitt til breytinga í átt að nálgunaraðferðum eins og kd-tré ( O(n log n) ).
Kerfi með opinberum lyklum treysta á hörku O(2) vandamál (t.d. heiltöluþáttun) til að standast árásir.
Rauntíma flutningsvélar forgangsraða O(1) Reiknirit fyrir eðlisfræðihermir til að viðhalda 60+ FPS.
Málaferli skipta máli:
-
Tími vs. Rými
Nota kjötkássakort (
O(1)
uppflettingar) á kostnað minnis.
-
Einfaldleiki vs. Bjartsýni
Innsetningarröðun (
O(n)
) gæti verið æskilegra fyrir lítil, næstum flokkuð gagnasöfn.
Fyrir endurkvæmar reiknirit, líkja endurtekningartengsl eftir keyrslutíma. Til dæmis, sameinanir raða endurtekningu:
[T(n) = 2T(n/2) + O(n)] leysist upp í
O(n log n)
í gegnum
Meistarasetningin
.
Raunprófanir eru viðbót við fræðilega greiningu. Prófílverkfæri (t.d. Valgrind, perf) leiða í ljós raunverulega flöskuhálsa.
píton
def línuleg_summa(arr):
samtals = 0
fyrir tölu í fylki:
samtals += fjöldi
heildarútkoma
def kvaðratísk_summa(arr):
samtals = 0
fyrir mig í röð:
fyrir j í rað:
samtals += i * j
heildarútkoma
Á meðan O(n) dregur burt fasta, a 100n reiknirit gæti verið hægara en a 0.01n reiknirit fyrir hagnýta n .
An O(n log n) reiknirit gæti staðið sig verr O(n) fyrir n = 10 vegna yfirkostnaðar.
Minnisbókað Fibonacci-fall ( O(n) pláss) gæti hrunið við stór inntak, ólíkt endurtekinni útgáfu ( O(1) rými).
Sjálfjöfnandi BST ( O(log n) leit) er öruggari en venjuleg BST ( O(n) versta falli) fyrir óáreiðanlegar upplýsingar.
Greining á flækjustigi reiknirita er áttaviti sem leiðir forritara í gegnum hið víðfeðma landslag reiknifræðilegrar skilvirkni. Fyrir nemendur í MTSC7196 þarf námi í þessari grein að brúa saman fræðilega þekkingu og verklega sérþekkingu. Með því að greina tíma- og rúmkröfur, bera saman asymptotísk mörk og rata í raunverulegum málamiðlunum geta forritarar smíðað kerfi sem stækka vel og virka áreiðanlega.
Í tímum sem einkennast af gagnadrifinni nýsköpun er hæfni til að greina á milli O(n log n) og O(n) Lausnin er ekki bara fræðileg, heldur stefnumótandi nauðsyn. Þegar þú þróast í náminu skaltu muna: flækjustigsgreining snýst ekki bara um tölur og tákn. Þetta snýst um að skilja hjartslátt útreikninganna sjálfra.
Síðan 2019 voru Meet U skartgripir stofnað í Guangzhou, Kína, skartgripavinnslustöð. Við erum skartgripafyrirtæki sem samþættir hönnun, framleiðslu og sölu.
+86-19924726359/+86-13431083798
13. hæð, West Tower of Gome Smart City, Nei. 33 Juxin Street, Haizhu District, Guangzhou, Kína.