Sisukord:

Kuidas rakendada Java-s binaarset otsingupuud?
Kuidas rakendada Java-s binaarset otsingupuud?

Video: Kuidas rakendada Java-s binaarset otsingupuud?

Video: Kuidas rakendada Java-s binaarset otsingupuud?
Video: Создание аннотации в java [Java Annotations | Reflection api] 2024, November
Anonim

Binaarse otsingupuu (BST) rakendamine Javas

  1. Sõlme vasakpoolne alampuu sisaldab ainult sõlme, mille võtmed on väiksemad kui sõlme võti.
  2. Sõlme parempoolses alampuus on ainult sõlmed, mille võtmed on suuremad kui sõlme võti.
  3. Vasak ja parem alampuu peavad samuti olema a binaarne otsingupuu .
  4. Dubleerivaid sõlme ei tohi olla.

Samuti on küsimus selles, kuidas on Java-s binaarne otsing rakendatud?

Vaatame näidet binaarsest otsingust Java-s, kus otsime massiivi elementi rekursiooni abil

  1. class BinarySearchExample1{
  2. public static int binarySearch(int arr, int esimene, int viimane, int võti){
  3. if (viimane>=esimene){
  4. int mid = esimene + (viimane - esimene)/2;
  5. if (arr[mid] == klahv){
  6. tagasi mid;
  7. }

Teiseks, kus me kasutame binaarset otsingupuud? Binaarne otsingupuu - Kasutatud paljudes otsing rakendused, kuhu andmed pidevalt sisenevad/väljuvad, näiteks kaart ja seadistusobjektid paljude keelte teekides. Binaarne Ruumi vahesein – Kasutatud peaaegu igas 3D-videomängus, et määrata, milliseid objekte tuleb renderdada.

Nii, kuidas moodustuvad kahendpuud?

Binaarse puu loomine rekursiooni abil

  1. Lugege andmeid x-is.
  2. Eraldage uuele sõlmele mälu ja salvestage aadress kursorisse p.
  3. Salvestage andmed x sõlme p.
  4. Loo rekursiivselt p vasakpoolne alampuu ja tee sellest p vasakpoolne alampuu.
  5. Loo rekursiivselt p õige alampuu ja tee sellest p õige alampuu.

Mis on binaarse otsingu keerukus?

Binaarne otsing jookseb sisse halvimal logaritmilisel ajal, tehes O(log n) võrdlusi, kus n on massiivi elementide arv, O on Big O tähis ja log on logaritm. Binaarne otsing võtab konstantse (O(1)) ruumi, mis tähendab, et algoritmi võetud ruum on massiivi suvalise arvu elementide jaoks sama.

Soovitan: