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)
}
თუ ხე არ არის ბალანსირებული, სიღრმე შეიძლება იყოს დიდი, რაც ეფექტიანობას ამცირებს.