Given a search() method in a height balanced binary tree (AVL tree):

4 phương ánCó giải thích
Đề bài
Node search(int x)
   { Node p = root;
       while(p!=null && p.info != x)
         { if(x<p.info)  p = p.left;
             else   p=p.right;
           }
       return(p);
     }

The complexity of this algorithm is:

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "O(log n)". Vòng lặp chỉ đi theo một đường từ gốc xuống, mỗi lần so sánh thì hoặc rẽ trái hoặc rẽ phải, nên số lần lặp nhiều nhất bằng chiều cao cây. Cây AVL giữ hiệu chiều cao hai nhánh của mọi nút trong khoảng từ -1 tới 1, nhờ đó chiều cao bị chặn bởi một hằng số nhân logarit của số nút, và phép tìm tốn thời gian tỉ lệ với log n. Mức "O(n)" đúng cho cây nhị phân tìm kiếm không cân bằng, trường hợp suy biến thành một dây nút giống danh sách liên kết, chính là điều mà ràng buộc AVL ngăn lại. Mức "O(nlog n)" là chi phí của các phép sắp xếp so sánh trên cả n phần tử, ở đây chỉ có một đường đi xuống nên không có thừa số n. Mức "O(n^2)" cần hai vòng lặp lồng nhau trên dữ liệu, mà đoạn mã chỉ có một vòng và trong vòng không có phép lặp nào khác.

Cùng phần 4

Xuất hiện trong 1 bộ đề