Alugoridimu complexity nipataki koju meji oro:
akoko
(ipari ipaniyan) ati
aaye
(lilo iranti). Lakoko idiju akoko ṣe iwọn bi akoko asiko ṣe ndagba pẹlu iwọn titẹ sii (
n
), eka aaye ṣe iṣiro agbara iranti. Fun apere:
- An alugoridimu pẹlu
O(n)
asiko complexity irẹjẹ linearly pẹlu input iwọn.
- An alugoridimu pẹlu
O(1)
eka aaye nlo iranti igbagbogbo laibikita iwọn titẹ sii.
Mejeeji metiriki jẹ pataki. Algoridimu ti o yara le mu iranti kuro lori awọn ipilẹ data nla, lakoko ti algorithm-daradara iranti le jẹ o lọra pupọ fun awọn ohun elo akoko gidi.
Ṣiṣe ṣiṣe n ṣalaye iṣeeṣe. Gbé tito akojọ kan ti awọn ohun kan 10 dipo 10 milionu:
- A
ti nkuta too
(
O(n)
) le to fun awọn ipilẹ data kekere ṣugbọn o di alaiṣe fun awọn nla.
- A
dapọ too
(
O(n log n)
) mu awọn akojọpọ data ti o tobi ju lọọfẹ ṣugbọn nilo afikun iranti.
Iṣiro-iṣoro n pese ede agbaye kan lati ṣe afiwe awọn algoridimu, yiyọkuro awọn alaye ohun elo kan pato. O fun awọn olupilẹṣẹ ni agbara lati ṣe asọtẹlẹ iwọnwọn ati yago fun awọn igo ni awọn eto to ṣe pataki.
Awọn akiyesi asymptotic ṣe apejuwe ihuwasi aropin ti awọn iṣẹ, fifun ni kukuru fun idiju. Awọn akọsilẹ akọkọ mẹta jẹ:
Big O akiyesi asọye akoko ti o pọju tabi aaye ti algorithm yoo gba. Fun apẹẹrẹ:
-
O(1)
: Aago ibakan (fun apẹẹrẹ, iwọle si ohun elo titobi nipasẹ atọka).
-
O(n)
: Akoko laini (fun apẹẹrẹ, aṣetunṣe nipasẹ atokọ kan).
-
O(n)
: Akoko kuadiratiki (fun apẹẹrẹ, awọn yipo itẹ-ẹiyẹ ni tootọ nkuta).
Big O jẹ metiriki ti a lo julọ, bi o ṣe ṣe iṣeduro awọn orule iṣẹ.
Omega ṣe apejuwe akoko to kere julọ ti o nilo. Fun apere:
- A laini search ni o ni
(1)
ti o ba ti afojusun ni akọkọ ano.
Lakoko ti o ni ireti, itupalẹ ọran ti o dara julọ jẹ alaye ti o kere si fun igbero ọran ti o buruju.
Theta darapọ Big O ati Omega, o nsoju ihuwasi asymptotic gangan. Ti awọn algoridimu ti o dara julọ ati awọn ọran ti o buru julọ jẹ kanna:
-
(n log n)
kan lati dapọ iru apapọ ati awọn oju iṣẹlẹ ti o buruju.
Awọn akiyesi wọnyi ni ailakoko kuro ati awọn ofin aṣẹ-kekere, ni idojukọ awọn oṣuwọn idagbasoke. Fun apẹẹrẹ, 2n + 3n + 4 simplifies lati O(n) nitori awọn kuadiratiki oro dominates fun tobi n .
Agbọye awọn kilasi idiju ṣe iranlọwọ ṣe tito lẹtọ algorithms nipasẹ iwọn. Eyi ni ipo-iṣakoso lati pupọ julọ si o kere julọ:
Akoko ipaniyan tabi iranti ko yipada bi
n
dagba.
-
Apeere
: Iwọle si iye tabili hash nipasẹ bọtini.
Akoko asiko ti o dagba logarithmically pẹlu
n
.
-
Apeere
: Wiwa alakomeji di aaye titẹ sii idaji aṣetunṣe kọọkan.
Awọn irẹjẹ asiko ṣiṣe ni ibamu pẹlu
n
.
-
Apeere
: Wiwa laini nipasẹ atokọ ti a ko pin.
Wọpọ ni awọn algoridimu pin-ati-ṣẹgun.
-
Apeere
: Dapọ too ati akojo too.
Iterations iteeye ja si awọn ibẹjadi idagba.
-
Apeere
: Bubble too ati yiyan too.
Akoko ṣiṣe ni ilọpo meji pẹlu titẹ sii afikun kọọkan.
-
Apeere
: Recursive Fibonacci isiro lai memoization.
Awọn algoridimu ti o da lori Permutation.
-
Apeere
: Yiyan iṣoro onijaja irin-ajo nipasẹ agbara-agbara.
Iyatọ laarin O(n log n) ati O(n) di aapọn fun n = 10 : tele le ṣiṣẹ ni milliseconds, nigba ti igbehin le gba awọn ọjọ.
Awọn alugoridimu ṣe yatọ si da lori awọn atunto igbewọle. Ṣiṣayẹwo gbogbo awọn ọran ṣe idaniloju agbara:
Imudara ibeere data data le yan laarin idapọ hash ( O(n + m) ) ati ikojọpọ lupu itẹle ( O(nm) ) da lori data pinpin. Itupalẹ ọran ti o buru julọ jẹ pataki fun awọn eto aabo-pataki (fun apẹẹrẹ, sọfitiwia ọkọ ofurufu), nibiti airotẹlẹ jẹ itẹwẹgba.
Iṣoro kanna le ṣee yanju nipa lilo awọn algoridimu oriṣiriṣi. Fun apẹẹrẹ, iṣoro wiwa fun iye ibi-afẹde ninu atokọ awọn iye le ṣee yanju nipa lilo awọn algoridimu oriṣiriṣi, gẹgẹbi wiwa laini, wiwa alakomeji, tabi wiwa tabili hash.
Tabili ti o wa ni isalẹ ṣe afiwe akoko ati awọn idiju aaye ti awọn algoridimu wọnyi fun wiwa iye ibi-afẹde kan ninu atokọ ti n awọn iye.
Yiyan algorithm da lori iwọn iṣoro, awọn abuda titẹ sii, ati awọn orisun to wa. Fún àpẹrẹ, tí àtòkọ náà bá kéré tí a kò sì ṣètò, ìṣàwárí laini le jẹ aṣayan ti o dara julọ. Ti atokọ naa ba tobi ati lẹsẹsẹ, wiwa alakomeji le jẹ yiyan ti o dara julọ. Ti atokọ naa ba tobi ati ti kii ṣe lẹsẹsẹ, wiwa tabili hash le jẹ yiyan ti o dara julọ.
Amortized onínọmbà ni aropin akoko lori kan ọkọọkan ti mosi.
-
Apeere
: Ìmúdàgba orunkun ė agbara nigba ti kun. Nigba kan nikan
Ti
isẹ le gba
O(n)
akoko, awọn amortized iye owo si maa wa
O(1)
.
Awọn alugoridimu bi
Monte Carlo
ati
Las Vegas
lo randomness fun ṣiṣe.
-
Apeere
: Idanwo primality Miller-Rabin ni awọn iṣeduro iṣeeṣe ṣugbọn o yara ju awọn ọna ipinnu lọ.
Diẹ ninu awọn iṣoro (fun apẹẹrẹ, itẹlọrun Boolean) jẹ NP-pipe , afipamo pe ko si ojuutu akoko-iye-iye ti a mọ ti o wa. Imudaniloju pipe NP nipasẹ awọn idinku ṣe iranlọwọ lati ṣe iyatọ lile iṣiro.
An O(n) iṣupọ algorithm le di igo fun awọn ipilẹ data nla, ti nfa awọn iyipada si awọn ọna isunmọ bii awọn igi kd ( O(n log n) ).
Àkọsílẹ-bọtini awọn ọna šiše gbekele lori líle ti O(2) awọn iṣoro (fun apẹẹrẹ, isọdi odidi) lati koju awọn ikọlu.
Real-akoko Rendering enjini ayo O(1) awọn algoridimu fun awọn iṣeṣiro fisiksi lati ṣetọju 60+ FPS.
Iṣowo-pipa pataki:
-
Akoko vs. Aaye
Lo awọn maapu hash (
O(1)
Lookups) ni iye owo ti iranti.
-
Irọrun vs. Ti o dara ju
: Iru ifibọ (
O(n)
) le jẹ ayanfẹ fun kekere, ti o fẹrẹ to lẹsẹsẹ.
Fun awọn algoridimu loorekoore, awọn ibatan isọdọtun akoko asiko asiko. Fún àpẹrẹ, àkópọ̀ àtúnyẹ̀wò irú:
[T (n) = 2T(n/2) + O(n)] pinnu lati
O(n log n)
nipasẹ awọn
Titunto si Theorem
.
Idanwo empirical complements theoretical analysis. Awọn irinṣẹ profaili (fun apẹẹrẹ, Valgrind, perf) ṣafihan awọn igo gidi-aye.
Python
def linear_sum(arr):
lapapọ = 0
fun num ni arr:
lapapọ += nọmba
lapapọ pada
def quadratic_sum(arr):
lapapọ = 0
fun mo ni arr:
fun j ni arr:
lapapọ += i * j
lapapọ pada
Lakoko O(n) abstracts kuro ibakan, a 100n alugoridimu le jẹ losokepupo ju a 0.01n alugoridimu fun ilowo n .
An O(n log n) algorithm le underperform O(n) fun n = 10 nitori oke.
Iṣẹ Fibonacci ti a ṣe iranti ( O(n) aaye) le jamba lori awọn igbewọle nla, ko dabi ẹya aṣetunṣe ( O(1) aaye).
BST iwọntunwọnsi ti ara ẹni ( O(log n) wiwa) jẹ ailewu ju BST deede ( O(n) ti o buru julọ) fun data ti a ko gbẹkẹle.
Itupalẹ idiju alugoridimu jẹ itọnisọna Kompasi ti n ṣe agbekalẹ awọn idagbasoke nipasẹ ala-ilẹ nla ti ṣiṣe iṣiro. Fun awọn ọmọ ile-iwe MTSC7196, ṣiṣakoso ibawi yii ṣe afara imọ imọ-jinlẹ ati imọran iṣe. Nipa pipin akoko ati awọn ibeere aaye, ifiwera awọn aala asymptotic, ati lilọ kiri awọn iṣowo-aye gidi, awọn olupilẹṣẹ le ṣe awọn ọna ṣiṣe ti o ni iwọn oore-ọfẹ ati ṣiṣe ni igbẹkẹle.
Ni akoko ti a ṣalaye nipasẹ isọdọtun ti a dari data, agbara lati mọ laarin ẹya O(n log n) ati ẹya O(n) ojutu kii ṣe ẹkọ nikan jẹ iwulo ilana kan. Bi o ṣe nlọsiwaju nipasẹ awọn ẹkọ rẹ, ranti: itupalẹ idiju kii ṣe nipa awọn nọmba ati awọn aami nikan. O jẹ nipa oye lilu ọkan ti iṣiro funrararẹ.
Lati ọdun 2019, pade awọn ohun ọṣọ U ti da ni Guangzhou, China, ipilẹ iṣelọpọ. A jẹ ohun ọṣọ ẹrọ isọdi ohun elo, iṣelọpọ ati tita.
+86-19924726359/+86-13431083798
Ilẹ 13, Ile-iṣọ iwọ-oorun ti Gooto ilu, Bẹẹkọ 33 Juxin Street, Ibi Agbegbe Hazhu, Guangzhou, China.