Hjem Personlig finansiering Binære høje og binære søgetræer bruges i algoritmer - dummier

Binære høje og binære søgetræer bruges i algoritmer - dummier

Video: Week 5, continued 2025

Video: Week 5, continued 2025
Anonim

En særlig slags træstruktur er den binære bunke, som placerer hver af knudeelementerne i en særlig rækkefølge. Søg træ giver dig mulighed for hurtigt at søge efter data. At hente dataposter, placere dem i rækkefølge i et træ, og derefter søge det pågældende træ er en af ​​de hurtigere måder at finde information på.

I en binær bunke indeholder rodknuden altid den mindste værdi. Når du ser grene, ser du, at grene på øverste plan altid er en mindre værdi end grene og blade på lavere plan. Effekten er at holde træet afbalanceret og i en forudsigelig rækkefølge, så søgning bliver ekstremt effektiv. Omkostningerne er ved at holde træet afbalanceret.

Af alle de opgaver, applikationer gør, er søgning, jo mere tidskrævende og også den mest krævede. Selvom tilføjelse af data (og sortering det senere) kræver lidt tid, vil fordelene ved at oprette og vedligeholde et datasæt komme fra at bruge det til at udføre nyttigt arbejde, hvilket betyder at søge det efter vigtige oplysninger. Derfor kan du nogle gange komme med mindre effektiv CRUD-funktionalitet og endda en mindre end optimal sorteringsrutine, men søgninger skal fortsætte så effektivt som muligt. Det eneste problem er, at ingen søgning udfører hver eneste opgave med absolut effektivitet, så du skal veje dine muligheder ud fra det, du forventer at gøre som led i søgerutinerne.

To af de mere effektive søgemetoder involverer brugen af ​​binært søgetræ (BST) og binær bunke. Begge søgeteknikker er afhængige af en trælignende struktur for at holde nøglerne brugt til adgang til dataelementer. Imidlertid er arrangementet af de to metoder forskelligt, hvorfor man har fordele i forhold til den anden, når de udfører visse opgaver. Denne figur viser arrangementet for en BST.

Arrangementet af nøgler, når du bruger en BST.

Bemærk, hvordan nøglerne følger en ordre, hvor færre tal vises til venstre, og større tal vises til højre. Rotenoden indeholder en værdi, der ligger midt i rækken af ​​nøgler, hvilket giver BST en let forståelig afbalanceret tilgang til lagring af nøglerne. Kontrast dette arrangement til den binære bunke, der vises her.

Arrangementet af nøgler, når du bruger en binær bunke.

Hvert niveau indeholder værdier, som er mindre end det foregående niveau, og roten indeholder den maksimale nøgleværdi for træet. Desuden vises de mindre værdier i dette særlige tilfælde til venstre og jo større til højre (selv om denne ordre ikke er strengt håndhævet). Figuren viser faktisk en binær maxhøjde. Du kan også oprette en binær minhøje, hvor roten indeholder den laveste nøgleværdi, og hvert niveau bygger op til højere værdier, hvor de højeste værdier vises som en del af bladene.

Som tidligere nævnt har BST nogle fordele i forhold til binær bunke, når den bruges til at udføre en søgning. Følgende liste indeholder nogle af højdepunkterne af disse fordele:

  • Søger et element kræver O (log n) tid, i modsætning til O (n) tid for en binær bunke.
  • Udskrivning af elementerne i rækkefølge kræver kun O (log n) tid, i modsætning til O (n log n) tid for en binær bunke.
  • At finde gulv og loft kræver O (log n) tid.
  • Find Kth mindste / største element kræver O (log n) tid, når træet er korrekt konfigureret.

Om disse tider er vigtige afhænger af din ansøgning. BST har tendens til at fungere bedst i situationer, hvor du bruger mere tid på at søge og mindre tid at bygge træet. En binær bunke har tendens til at fungere bedst i dynamiske situationer, hvor nøglerne ændres regelmæssigt. Den binære bunke giver også fordele som beskrevet i følgende liste:

  • Oprettelse af de krævede strukturer kræver færre ressourcer, fordi binære dynger er afhængige af arrayer, hvilket gør dem også cache venligere.
  • At bygge en binær bunke kræver O (n) tid, i modsætning til BST, hvilket kræver O (n log n) tid.
  • Brug af peger til at implementere træet er ikke nødvendigt.
  • Baseret på binære bunkevariationer (for eksempel Fibonacci Heap) tilbyder fordele som forøgelse og nedsættelse af nøgletider for O (1) tid.
Binære høje og binære søgetræer bruges i algoritmer - dummier

Valg af editor

Sammenligning af Hadoop-distributioner - dummier

Sammenligning af Hadoop-distributioner - dummier

Du vil opdage, at Hadoop-økosystemet har mange komponenter, som alle eksisterer som deres egne Apache projekter. Fordi Hadoop er vokset betydeligt og står over for nogle betydelige yderligere ændringer, er forskellige versioner af disse komponenter i open source-fællesskabet måske ikke fuldt kompatible med andre komponenter. Dette giver betydelige vanskeligheder for folk, der søger at få ...

Faktorer, der øger omfanget af statistisk analyse i Hadoop - dummies

Faktorer, der øger omfanget af statistisk analyse i Hadoop - dummies

Grunden til, at folk udprøver deres data før du kører statistisk analyse i Hadoop er, at denne form for analyse ofte kræver betydelige databehandlingsressourcer. Det handler ikke kun om datamængder: der er fem hovedfaktorer, der påvirker omfanget af statistisk analyse: Denne er let, men vi skal nævne det: mængden af ​​data på ...

Komprimering af data i Hadoop - dummies

Komprimering af data i Hadoop - dummies

Er de enorme datamængder, der er realiteter i en typisk Hadoop-implementering, en nødvendighed. Datakomprimering sparer helt sikkert en stor mængde lagerplads og er sikker på at fremskynde bevægelsen af ​​disse data i hele din klynge. Ikke overraskende er der en række tilgængelige komprimeringsordninger, kaldet codecs, derude for ...

Valg af editor

Hvordan man bruger Wordtracker Søgeordsværktøj - dummies

Hvordan man bruger Wordtracker Søgeordsværktøj - dummies

Wordracker er måske det mest populære kommercielle søgeordværktøj blandt seo fagfolk. Wordtracker har adgang til data fra et par store metakrawlere og en stor britisk internetudbyder. En metacrawler er et system, der søger flere søgemaskiner til dig. Skriv f.eks. Et ord i Dogpiles søgefelt, og systemet søger på Google, ...

Identificere mobile brugers søgemønstre for SEO - dummies

Identificere mobile brugers søgemønstre for SEO - dummies

I begyndelsen af ​​2014 Endelig skete: Internetbrug via mobile enheder oversteg faktisk desktop internetbrug i USA for første gang. Overveje det, alle har en smartphone i disse dage, og folk bruger i stigende grad disse handy-enheder, tabletter som iPad og det nye mellemstore sortiment af tabletter (overdimensionerede telefon-tablet-enheder) ...

Hvordan man bruger single page analyser til konkurrencedygtig seo forskning - dummies

Hvordan man bruger single page analyser til konkurrencedygtig seo forskning - dummies

Single Page Analyzer værktøj kan hjælpe dig med at forbedre dit websted til SEO. Det fortæller dig, hvad en websides søgeord er og beregner deres tæthed. Søgeordsdensitet er en procentdel, der angiver det antal gange søgeordet opstår i forhold til det samlede antal ord på siden. Når du kører en konkurrents side ...

Valg af editor

Sådan konstrueres en funktion i C Programmering - dummier

Sådan konstrueres en funktion i C Programmering - dummier

I C-programmering, alle funktioner kaldes med en navn, som skal være unikt ingen to funktioner kan have samme navn, og en funktion kan heller ikke have samme navn som et søgeord. Navnet efterfølges af parenteser, som derefter efterfølges af et sæt krøllede parenteser. Så i sin enkleste konstruktion, en ...

Sådan oprettes en ny kode:: Blokerer projekt i C-dummier

Sådan oprettes en ny kode:: Blokerer projekt i C-dummier

I C programmeringssprog, en konsol-applikation er en, der kører i tekst-tilstand i et terminalvindue. Selv om et integreret udviklingsmiljø er i stand til mere, er det den bedste måde at lære grundlæggende programmeringskoncepter på, uden at overvældende dig med et stort, komplekst grafisk dyr af et program. Sådan fungerer det: Start ...

Hvordan man viser tekst på skærmen i C med sætter () og printf () - Dummies

Hvordan man viser tekst på skærmen i C med sætter () og printf () - Dummies

De ting, som et C-program kan gøre, er ubegrænset, men når du først lærer sproget, skal du starte lille. En af de mest almindelige funktioner, du vil have dit C-program til at gøre, er at vise tekst på skærmen, og der er to måder at gøre: sætter () og printf (). sætter () Sætter sandsynligvis ...