Sobes.tech
Junior — Middle

Noto'g'li ma'lumotlar daraxtida qidiruv samaradorligi qanday aniqlanadi?

sobes.tech AI

AIdan javob

Noto'g'ri balanslangan daraxtda qidiruv samaradorligi qidirilayotgan element joylashgan tugunning chuqurligi bilan belgilanadi. Eng yomon holatda, agar daraxt ro'yxatga aylansa, qidiruv vaqti chiziqli bo'lib, — O(n). O'rtacha holatda, samaradorlik daraxt tuzilishi va ma'lumotlarning taqsimlanishiga bog'liq. Baholash uchun odatda daraxtning balandligi ishlatiladi: balandroq daraxt, qidiruv uzoqroq davom etadi. Go tilida, ikkilamchi daraxtda qidiruvni quyidagicha amalga oshirish mumkin:

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

Agar daraxt muvozanatli bo'lmasa, chuqurlik katta bo'lishi mumkin, bu esa samaradorlikni pasaytiradi.