Sobes.tech
Junior — Middle

როგორ განვსაზღვროთ მონაცემთა არასათანადო ხის ძიების ეფექტიანობა?

sobes.tech AI

პასუხი AI-სგან

არასწორად ბალანსირებული ხის ძებნის ეფექტიანობა განისაზღვრება იმ ნიშნის სიღრმით, სადაც მდებარეობს საძიებო ელემენტი. ყველაზე უარესი შემთხვევა, თუ ხე გარდაიქმნება სიად, ძებნის დრო ხდება ლინეურული — O(n). საშუალოდ, ეფექტიანობა დამოკიდებულია ხის სტრუქტურაზე და მონაცემების განაწილებაზე. შეფასებისთვის ჩვეულებრივ იყენებენ ხის სიმაღლეს: რამდენად მაღალია, იმდენად გრძელია ძებნა. Go-ში, ბინარული ხის ძებნა ასე შეიძლება განხორციელდეს:

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

თუ ხე არ არის ბალანსირებული, სიღრმე შეიძლება იყოს დიდი, რაც ეფექტიანობას ამცირებს.