Acasă Finanțe personale Binare binare și arbori binari de căutare folosiți în algoritmi - dummies

Binare binare și arbori binari de căutare folosiți în algoritmi - dummies

Video: NEW ODIA BHAJAN PURI SARAKARA BY SRICHARAN MOHANTY 2024

Video: NEW ODIA BHAJAN PURI SARAKARA BY SRICHARAN MOHANTY 2024
Anonim

Un tip special de structură arborescentă este heapul binar, care plasează fiecare dintre elementele nodului într-o ordine specială. Arborele de căutare vă permite să căutați date rapid. Obținerea elementelor de date, plasarea lor în ordine ordonată într-un arbore și apoi căutarea acelui arbore este una dintre modalitățile mai rapide de a găsi informații.

Într-un heap binar, nodul rădăcină conține întotdeauna cea mai mică valoare. Când vizualizați ramurile, vedeți că ramurile de nivel superior sunt întotdeauna o valoare mai mică decât ramurile și frunzele de nivel inferior. Efectul este să păstreze arborele echilibrat și într-o ordine previzibilă, astfel că căutarea devine extrem de eficientă. Costul este în păstrarea copacului echilibrat.

Din toate sarcinile pe care le fac aplicațiile, căutarea este mai consumatoare de timp și, de asemenea, cea mai solicitată. Chiar dacă adăugarea de date (și sortarea acestora mai târziu) necesită o anumită perioadă de timp, beneficiul creării și menținerii unui set de date vine de la utilizarea acestuia pentru a efectua o muncă utilă, ceea ce înseamnă căutarea unor informații importante. În consecință, puteți obține uneori funcționalități CRUD mai puțin eficiente și chiar o rutină de sortare mai puțin optimă, dar căutările trebuie să se desfășoare cât mai eficient posibil. Singura problemă este că nici o căutare nu efectuează fiecare activitate cu o eficiență absolută, deci trebuie să cântăriți opțiunile pe baza a ceea ce vă așteptați să faceți ca parte a rutinelor de căutare.

Două dintre metodele mai eficiente de căutare implică utilizarea arborelui binar de căutare (BST) și a heapului binar. Ambele tehnici de căutare se bazează pe o structură arborescentă pentru a ține cheile folosite pentru a accesa elementele de date. Cu toate acestea, aranjamentul celor două metode este diferit, motiv pentru care unul are avantaje față de celălalt atunci când îndeplinește anumite sarcini. Această figură arată dispunerea unui BST.

Aranjamentul cheilor când se utilizează un BST.

Rețineți modul în care tastele respectă o ordine în care sunt afișate numere mai mici în partea stângă, iar numerele mai mari apar în dreapta. Nodul rădăcină conține o valoare care se află în mijlocul gamei de chei, oferind BST o abordare echilibrată ușor de înțeles pentru stocarea cheilor. Contrastați acest aranjament cu halda binară prezentată aici.

Aranjamentul cheilor când se utilizează un heap binar.

Fiecare nivel conține valori mai mici decât nivelul precedent, iar rădăcina conține valoarea maximă a tastei pentru arbore. În plus, în acest caz special, valorile mai mici apar în stânga și mai mare în dreapta (deși această ordine nu este strict impusă). Cifra descrie de fapt un heap max binar. Puteți crea, de asemenea, un heap min binar în care rădăcina conține cea mai mică valoare de cheie și fiecare nivel se construiește la valori mai mari, cu cele mai mari valori care apar ca parte a frunzelor.

După cum sa menționat anterior, BST are anumite avantaje față de heapul binar când este folosit pentru a efectua o căutare. Următoarea listă prezintă câteva din avantajele acestor avantaje:

  • Căutarea unui element necesită un timp O (log n), în contrast cu timpul O (n) pentru un heap binar.
  • Imprimarea elementelor în ordine necesită doar un timp O (log n), în contrast cu timpul O (n log n) pentru un heap binar.
  • Găsirea podelei și a tavanului necesită timp O (log n).
  • Localizarea elementului kth cel mai mic / cel mai mare necesită O (log n) timp când arborele este configurat corespunzător.

Dacă aceste momente sunt importante, depinde de cererea dvs. BST tinde să funcționeze cel mai bine în situațiile în care petreceți mai mult timp în căutarea și construirea mai puțin timp a copacului. O grămadă binară tinde să funcționeze cel mai bine în situații dinamice în care cheile se schimbă regulat. De asemenea, heapul binar oferă avantaje, așa cum este descris în următoarea listă:

  • Crearea structurilor necesare necesită mai puține resurse deoarece grămezile binare se bazează pe array-uri, făcându-le și cache mai prietenoase.
  • Construirea unui heap binar necesită O (n) timp, în contrast cu BST, care necesită timp O (n log n).
  • Nu este necesară utilizarea pointerilor pentru a implementa arborele.
  • Bazându-se pe variațiile de heifer binare (de exemplu, Fibonacci Heap) oferă avantaje cum ar fi creșterea și scăderea timpilor cheie de timp O (1).
Binare binare și arbori binari de căutare folosiți în algoritmi - dummies

Alegerea editorilor

Evaluarea Vizualizărilor de date - dummies

Evaluarea Vizualizărilor de date - dummies

Vizualizările de date pot fi foarte colorate și impresionante. Dar amintiți-vă că cheia pentru crearea unor vizualizări eficiente de date nu depinde de faptul dacă este interesantă, ci mai degrabă de faptul dacă descoperă problemele reale de afaceri care trebuie abordate. O foaie de lucru vă ajută să creați propriile vizualizări de date sau să evaluați creațiile altora. Aici ...

Determinarea programului care funcționează cel mai bine pentru nevoile tale informatice

Determinarea programului care funcționează cel mai bine pentru nevoile tale informatice

Să lucreze mai bine decât celălalt. În timp, veți dezvolta un sentiment dacă Illustrator sau Photoshop se potrivesc mai bine pentru diverse sarcini. Până atunci, iată un exemplu despre modul în care fiecare program gestionează diferite elemente ale lucrării de design grafic. Graphing Photoshop nu este un program de grafic. Tu ...

Infografice nevergreen: Închirierea obiectelor Build - dummies

Infografice nevergreen: Închirierea obiectelor Build - dummies

Infografics evergreen nu sunt legate de niciun eveniment sau persoană în știri . Ele nu au o componentă sezonieră și nu sunt legate de ceva în timp util. O infographic despre cum se fac CD-urile se va aplica pentru că este vorba de muzică, dar nu este specifică nici unui artist sau gen. Cu infografiile veșnic verzi, ignorați complet evenimentele curente și explorați ideile ...

Alegerea editorilor

Utilizați Zoom în Adobe Photoshop CS5 - manechine

Utilizați Zoom în Adobe Photoshop CS5 - manechine

Adobe Creative Suite 5 oferă scurtături pentru Zooming în Photoshop. Imaginile care arată bine la un nivel de zoom pot părea extrem de proaste la altul. Veți mări și micșora destul de des în timp ce lucrați la imagini în Photoshop. Puteți găsi opțiuni de meniu pentru zoom în meniul Vizualizare; o modalitate mai rapidă de a mări este ...

Text în Photoshop CC - dummies

Text în Photoshop CC - dummies

Când editați o imagine cu text în Photoshop CC, puteți schimba linia care fluxul dvs. de tip fie folosind funcția Warp Text sau tastând pe o cale. Tipul de deformare utilizează forme predefinite la care se formează tipul dvs. (și poate fi utilizat atât cu tipul de punct, cât și cu paragraful) și tastând ...

Alegerea editorilor

Cum se adaugă Biblioteca RegEx în C ++ - dummies

Cum se adaugă Biblioteca RegEx în C ++ - dummies

Cea mai mare parte a bibliotecii Boost funcționează bine adăugând la codul aplicației. Cu toate acestea, câteva componente, cum ar fi RegEx, necesită o bibliotecă. Înainte de a putea folosi o bibliotecă, trebuie să o construiți. După ce ați construit biblioteca, trebuie să o adăugați în aplicație. Există două tehnici de adăugare a ...

Cum Heap Works în C ++ - dummies

Cum Heap Works în C ++ - dummies

Halda este un bloc amorf de memorie pe care programul C ++ îl poate accesa după cum este necesar. Aflați de ce există și cum se utilizează. Așa cum este posibil să treci un pointer la o funcție, este posibil ca o funcție să returneze un pointer. O funcție care returnează adresa ...

Cum să evitați codul de injectare în C ++ - dummies

Cum să evitați codul de injectare în C ++ - dummies

Prima regulă de evitare a codului injectat în programele C ++ , permiterea prelucrării datelor de către un interpret de limbă cu scop general. O eroare obișnuită cu SQL-injectarea este că programul acceptă intrarea utilizatorului ca și cum ar fi fost întotdeauna acceptabilă și îl inserează într-o interogare SQL pe care o trimite apoi la ...