Nhược điểm của phương pháp nối kết

Một phần của tài liệu Giáo trình Cấu trình Dữ liệu và giải thuật - Chương 12 - Bảng và truy xuất thông tin (Trang 26)

Các ưu điểm của bảng băm theo phương pháp nối kết thực sự là rất có lợi. Chúng ta nên tin rằng phương pháp nối kết luôn là phương pháp tốt hơn so với phương pháp địa chỉ mở. Tuy vậy, chúng ta hãy xét đến một nhược điểm quan trọng của nó: mọi mối liên kết đều chiếm vùng nhớ. Nếu phần tử có kích thước lớn thì kích thước của các con trỏ sẽ không đáng kể, ngược lại sẽ là điều không hay.

Giả sử rằng mỗi mối liên kết chiếm một từ (một word chiếm 2 hoặc 4 bytes) và mỗi phần tử cũng chỉ chiếm một từ. Những ứng dụng như vậy cũng tương đối phổ biến, trong đó chúng ta sử dụng bảng băm chỉ để trả lời một vài câu hỏi yes- no về các khóa. Giả sử chúng ta dùng bảng băm theo phương pháp nối kết và khai báo một mảng nhỏ để chứa bảng băm với n là số phần tử của mảng mà cũng là số phần tử sẽ có. Chúng ta sẽ phải sử dụng 3n từ trong bộ nhớ: n cho bảng băm, n cho các khóa, và n cho các mối liên kết để tìm đến phần tử kế trong các danh sách liên kết. Do bảng băm gần như đầy nên đụng độ sẽ xảy ra nhiều hơn, một số danh sách liên kết sẽ có vài phần tử. Việc tìm kiếm sẽ chậm. Mặt khác, giả sử như chúng ta dùng phương pháp địa chỉ mở. Cũng với 3n từ của bộ nhớ, nếu chúng ta chứa trực tiếp các phần tử trong bảng băm có kích thước 3n này thì chỉ có một phần ba bảng là có dữ liệu, như vậy số đụng độ cũng sẽ tương đối ít và việc tìm một phần tử sẽ nhanh hơn rất nhiều.

Một phần của tài liệu Giáo trình Cấu trình Dữ liệu và giải thuật - Chương 12 - Bảng và truy xuất thông tin (Trang 26)