Bài tập  /  Bài đang cần trả lời

Trong cây tìm kiếm nhị phân em vừa xây dựng ở phần vận dụng, với một số cụ thể trong dây em hãy cho biết cần bao nhiều bước so sánh để tìm ra nút có giá trị khóa đó trên cây.

Trong cây tìm kiếm nhị phân em vừa xây dựng ở phần vận dụng, với một số cụ thể trong dây em hãy cho biết cần bao nhiều bước so sánh để tìm ra nút có giá trị khóa đó trên cây.

1 trả lời
Hỏi chi tiết
8
0
0
Nguyễn Thu Hiền
11/09 14:06:20

Trong cây tìm kiếm nhị phân em vừa xây dựng ở phần vận dụng, để xác định số bước so sánh cần thiết để tìm ra một nút có giá trị khóa cụ thể trong cây tìm kiếm nhị phân, ta cần biết cấu trúc cụ thể của cây và vị trí của giá trị khóa đó trong cây. Ở bài toán tổng quát, số bước so sánh sẽ phụ thuộc vào chiều cao của cây.

Giả sử em có một cây tìm kiếm nhị phân (BST) và muốn tìm một giá trị khóa cụ thể k , quá trình tìm kiếm hoạt động như sau:

Bước 1. So sánh k với giá trị khóa của nút gốc.

Bước 2. Nếu k bằng giá trị khóa của nút gốc, ta đã tìm thấy giá trị và dừng lại.

Bước 3. Nếu k nhỏ hơn giá trị khóa của nút gốc, ta tiếp tục tìm kiếm trong cây con trái.

Bước 4. Nếu k lớn hơn giá trị khóa của nút gốc, ta tiếp tục tìm kiếm trong cây con phải.

Bước 5. Lặp lại các bước trên cho đến khi tìm thấy giá trị khóa k hoặc đi đến một nút lá (nút không có con), mà không tìm thấy k trong cây.

Số bước so sánh chính là số lần so sánh cần thiết để đi từ gốc cây đến nút chứa giá trị khóa k. Số bước này bằng độ sâu của nút chứa giá trị khóa k trong cây.

Trong trường hợp cây là một cây tìm kiếm nhị phân cân bằng, chiều cao của cây là (O(log n)), với n là số lượng nút trong cây. Do đó, số bước so sánh trung bình để tìm kiếm một giá trị khóa trong cây sẽ là (O(log n)).

Nếu cây không cân bằng, trong trường hợp xấu nhất (cây bị thoái hóa thành danh sách liên kết), số bước so sánh có thể lên tới (O(n)).

Ví dụ:

Giả sử có một cây tìm kiếm nhị phân với các giá trị khóa được chèn lần lượt như sau: 9, 5, 19, 3, 7, 15, 24.

Cây sẽ được xây dựng như sau:

Nếu em muốn tìm giá trị khóa 7 trong cây này, các bước so sánh sẽ là:

1. So sánh 7 với 9 (gốc): 7 < 9, đi đến cây con trái.

2. So sánh 7 với 5: 7 > 5, đi đến cây con phải.

3. So sánh 7 với 7: Đúng, đã tìm thấy giá trị khóa.

Vậy cần 3 bước so sánh để tìm giá trị khóa 7 trong cây này.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Tin học Lớp 12 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư