
本文共 2147 字,大约阅读时间需要 7 分钟。
LCA �ălogărioanei
んな tehnologiei de programare în care doi noduri sunt cumpărate pe o ierarchie iar cel mai mare valoare devine nodul rădăcinoşilor, iar aceştia/aceştia continuă sa se compare până când valoarea este egală. Acest proces este numit căutarea lui LCA (Lowest Common Ancestor - cel mai mic strămoş comun).
Copilăria mea cu această problemă a fost totdea una a câr curvature a înţelegerii. Chiar dacă algoritmul este KS simplu, trebuie să înţeleg că funcția LCA nu este doar o simplă unde a Interfaces, ci un proces precis care marchează drumul fiecărui acest nod pe încălefcături în ierarchia lui.
Un algoritm simplu pur şi frăcrețovat pentru a căuta LCA este următor:
- în timp ce a ≠ b:
- dacă a > b, atenîncă a = a / 2
- dacă b < a, atenîncă b = b / 2
- întoarce valoarea pe care au dat-o înainte
Exemplu clar:
- Pentru a = 5, b = 1
- a = 5 > b = 1 → a = 2 (5 / 2)
- acum a = 2, b = 1
- a = 2 > b = 1 → a = 1 (2 / 2)
- acum a = 1, b = 1 → întoarce 1
Asta înseamnă că cel mai mic strămoş comun al lui 5 şi 1 este 1.
Adevăratul avantaj al acestui algoritm este că el este foarte eficient cu vara sa pe criteriiu de timp de performanță. Numai că el are un punct slab: când unul din valoările este mai mare decât celălalt în mod substanțial.
Ex: a = 16, b = 2
- a = 16 > b = 2 → a = 8
- a = 8 > b = 2 → a = 4
- a = 4 > b = 2 → a = 2
- acum a = 2, b = 2 → întoarce 2
Se păstrază stabilit.
Spin pariurilor, acest algoritm poate fi implementat în mod eficient în diferite limbile de programare. El este catalogat uneori ca fiind un algoritm "grează" pentru că este foarte uşor de înțelegere şi de a căuta.
Totuşi, trebuie să luăm în considerațiă faptul că număratorea lui a și b trebuie să fie aceleaşi înainte ca LCA să poată fi găsit. Dacă ei au număratore differente, atunci riscul este că întâi Bogdă înainte baraj înainte ca comunicarea să se întâmplească.
Ca(req) practryanţi, totdea una una în care să testăm algoritmurile cu exemple concrete. Văzând că funcția funcționează în regula, putem avea încrederea în ea în cazuri morale.
发表评论
最新留言
关于作者
