Sobes.tech
Junior — Middle

Cum se determină eficiența căutării într-un copac de date dezechilibrat?

sobes.tech AI

Răspuns de la AI

Eficiența căutării într-un copac dezechilibrat este determinată de adâncimea nodului în care se află elementul căutat. În cel mai rău caz, dacă copacul se degenera într-o listă, timpul de căutare devine liniar — O(n). În medie, eficiența depinde de structura copacului și de distribuția datelor. Pentru evaluare, de obicei se folosește înălțimea copacului: cu cât copacul este mai înalt, cu atât căutarea durează mai mult. În Go, se poate implementa căutarea într-un copac binar astfel:

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)
}

Dacă copacul nu este echilibrat, adâncimea poate fi mare, ceea ce reduce eficiența.