Pirmkārt, mēs sapratīsim binārais koks un binārā meklēšanas koks atsevišķi, un tad mēs aplūkosim atšķirības starp bināro koku un bināro meklēšanas koku.
Kas ir binārais koks?
A Binārais koks ir
Bināro koku var attēlot šādi:
Iepriekš redzamajā attēlā var novērot, ka katrā mezglā ir maksimāli 2 bērni. Ja nevienā mezglā nav kreisās vai labās puses atvasinājuma, rādītāja vērtība attiecībā uz šo bērnu būtu NULL.
Binārajā kokā izmantotās pamata terminoloģijas ir:
Binārajā kokā ir viens koks, kas pazīstams kā a ideāls binārais koks . Tas ir koks, kurā visos iekšējos mezglos ir jābūt diviem mezgliem, un visiem lapu mezgliem jābūt vienādā dziļumā. Perfekta binārā koka gadījumā kopējo binārajā kokā esošo mezglu skaitu var aprēķināt, izmantojot šādu vienādojumu:
n = 2m+1-1
kur n ir mezglu skaits, m ir mezgla dziļums.
Kas ir binārās meklēšanas koks?
A Binārais meklēšanas koks ir koks, kas seko noteiktai secībai, lai sakārtotu elementus, savukārt binārais koks neseko nevienai secībai. Binārajā meklēšanas kokā kreisā mezgla vērtībai ir jābūt mazākai par vecākmezglu, bet labā mezgla vērtībai ir jābūt lielākai par vecākmezglu.
Izpratīsim binārā meklēšanas koka jēdzienu, izmantojot piemērus.
Iepriekš redzamajā attēlā var novērot, ka saknes mezgla vērtība ir 15, kas ir lielāka par visu kreisā apakškoka mezglu vērtību. Saknes mezgla vērtība ir mazāka par visu labās puses apakškoka mezglu vērtībām. Tagad mēs pārejam uz saknes mezgla kreiso bērnu. 10 ir lielāks par 8 un mazāks par 12; tas apmierina arī binārā meklēšanas koka īpašību. Tagad mēs pārejam uz saknes mezgla labo bērnu; vērtība 20 ir lielāka par 17 un mazāka par 25; tas atbilst arī binārā meklēšanas koka īpašībai. Tāpēc mēs varam teikt, ka iepriekš parādītais koks ir binārais meklēšanas koks.
Tagad, ja mēs mainām vērtību 12 uz 16 iepriekš minētajā binārajā kokā, mums ir jāatrod, vai tas joprojām ir binārais meklēšanas koks.
Saknes mezgla vērtība ir 15, kas ir lielāka par 10, bet mazāka par 16, tāpēc tā neatbilst binārā meklēšanas koka īpašībai. Tāpēc tas nav binārs meklēšanas koks.
Operācijas binārajā meklēšanas kokā
Mēs varam veikt ievietošanas, dzēšanas un meklēšanas darbības binārajā meklēšanas kokā. Sapratīsim, kā tiek veikta meklēšana binārajā meklēšanā. Tālāk ir parādīts binārais koks, kurā mums jāveic meklēšanas darbība:
Pieņemsim, ka mums ir jāmeklē 10 iepriekš minētajā binārajā kokā. Lai veiktu bināro meklēšanu, mēs ņemsim vērā visus veselos skaitļus sakārtotā masīvā. Pirmkārt, mēs izveidojam pilnu sarakstu meklēšanas laukā, un visi skaitļi būs meklēšanas laukā. Meklēšanas vieta ir atzīmēta ar diviem rādītājiem, t.i., sākumu un beigas. Iepriekš minētā binārā koka masīvu var attēlot kā
Vispirms mēs aprēķināsim vidējo elementu un salīdzināsim vidējo elementu ar meklējamo elementu. Vidējais elements tiek aprēķināts, izmantojot n/2. n vērtība ir 7; tāpēc vidējais elements ir 15. Vidējais elements nav vienāds ar meklēto elementu, t.i., 10.
Piezīme: Ja meklējamais elements ir mazāks par vidējo elementu, tad meklēšana tiks veikta kreisajā pusē; pretējā gadījumā meklēšana tiks veikta labajā pusē. Vienlīdzības gadījumā elements tiek atrasts.
Tā kā meklējamais elements ir mazāks par vidējo elementu, meklēšana tiks veikta kreisajā masīvā. Tagad meklēšana ir samazināta uz pusi, kā parādīts zemāk:
Vidējais elements kreisajā masīvā ir 10, kas ir vienāds ar meklēto elementu.
Laika sarežģītība
Binārajā meklēšanā ir n elementi. Ja vidējais elements nav vienāds ar meklēto elementu, tad meklēšanas telpa tiek samazināta līdz n/2, un mēs turpināsim samazināt meklēšanas telpu par n/2, līdz elementu atradīsim. Visā samazināšanā, ja mēs pārietam no n uz n/2 uz n/4 un tā tālāk, tad tas aizņems log2n soļi.
Atšķirības starp bināro koku un bināro meklēšanas koku
Pamats salīdzināšanai | Binārais koks | Binārais meklēšanas koks |
---|---|---|
Definīcija | Binārais koks ir nelineāra datu struktūra, kurā mezglam var būt maksimāli divi bērni, t.i., mezglam var būt 0, 1 vai ne vairāk kā divi bērni. Binārais meklēšanas koks ir sakārtots binārs koks, kurā tiek ievērota noteikta secība, lai sakārtotu mezglus kokā. | |
Struktūra | Binārā koka struktūra ir tāda, ka pirmais mezgls vai augšējais mezgls ir pazīstams kā saknes mezgls. Katrs binārā koka mezgls satur kreiso un labo rādītāju. Kreisais rādītājs satur kreisā apakškoka adresi, bet labais rādītājs satur labā apakškoka adresi. | Binārais meklēšanas koks ir viens no binārā koka veidiem, kura visu kreisā apakškoka mezglu vērtība ir mazāka vai vienāda ar saknes mezglu, un visu labā apakškoka mezglu vērtība ir lielāka vai vienāda ar saknes mezgla vērtība. |
Operācijas | Operācijas, kuras var īstenot binārajā kokā, ir ievietošana, dzēšana un šķērsošana. | Binārie meklēšanas koki ir sakārtoti binārie koki, kas nodrošina ātru ievietošanu, dzēšanu un meklēšanu. Uzmeklēšana galvenokārt īsteno bināro meklēšanu, jo visas atslēgas ir sakārtotas sakārtotā secībā. |
veidi | Četri bināro koku veidi ir pilns binārais koks, pilnīgs binārais koks, ideāls binārais koks un paplašinātais binārais koks. | Ir dažādi bināro meklēšanas koku veidi, piemēram, AVL koki, Splay koks, tango koki utt. |