Sobes.tech
Junior — Middle

Jak se určuje efektivita hledání v nerovnovážném stromu dat?

sobes.tech AI

Odpověď od AI

Efektivita vyhledávání v nevyváženém stromu je určena hloubkou uzlu, ve kterém se nachází hledaný prvek. V nejhorším případě, pokud se strom zvrhne v seznam, se doba hledání stává lineární — O(n). Průměrně závisí efektivita na struktuře stromu a rozložení dat. Pro odhad se obvykle používá výška stromu: čím vyšší je strom, tím déle trvá hledání. V Go lze vyhledávání v binárním stromu implementovat takto:

func search(node *Node, key int) *Node {
    if node == nil || node.key == key {
        return node
    }
    if key < node.key {
        return search(node.left, key)
    }
    return search(node.right, key)
}

Pokud strom není vyvážený, může být hloubka velká, což snižuje efektivitu.