JavaScript is required

Để việc tìm kiếm thông tin mặt hàng được nhanh chóng, người ta dùng một bảng băm theo phương pháp thăm dò, làm việc trên mã quản lý của mặt hàng. Mã quản lý này là một con số nguyên. Bảng băm có:

- Hàm băm: h(key) = (key % M)

- Hàm băm lại (hàm thăm dò): prob(key, i) = (h(key) + i*i + i) % M

Trong đó:

- key là giá trị khóa.

- i là một số nguyên cho biết lần băm lại (thăm dò) thứ i.

- M là kích thước bảng băm.

Giả sử M = 7, cho trường hợp T của bảng băm đã chứa dữ liệu như bên dưới. Biết “-” là ký hiệu vị trí trống trong bảng băm.

a. Trình bày từng bước việc tìm mã quản lý 23 trong bảng băm T.

b. Trình bày từng bước việc thêm các mã quản lý sau vào bảng băm T theo đúng thứ tự liệt kê là 11, 20, 27.

Trả lời:

Đáp án đúng:


**a. Tìm kiếm mã quản lý 23 trong bảng băm T:** 1. **Tính hàm băm ban đầu:** h(23) = 23 % 7 = 2. Kiểm tra vị trí T[2]. 2. **Kiểm tra T[2]:** T[2] đang chứa giá trị 9, khác 23. Thực hiện thăm dò. 3. **Thăm dò lần 1 (i=1):** prob(23, 1) = (2 + 1*1 + 1) % 7 = 4. Kiểm tra vị trí T[4]. 4. **Kiểm tra T[4]:** T[4] đang chứa giá trị 23. Tìm thấy mã quản lý. **b. Thêm các mã quản lý 11, 20, 27 vào bảng băm T:** * **Thêm 11:** 1. Tính hàm băm: h(11) = 11 % 7 = 4. Kiểm tra vị trí T[4]. 2. T[4] đã chứa 23. Thực hiện thăm dò. 3. Thăm dò lần 1 (i=1): prob(11, 1) = (4 + 1*1 + 1) % 7 = 6. Kiểm tra T[6]. 4. T[6] đang trống. Gán T[6] = 11. * **Thêm 20:** 1. Tính hàm băm: h(20) = 20 % 7 = 6. Kiểm tra vị trí T[6]. 2. T[6] đã chứa 11. Thực hiện thăm dò. 3. Thăm dò lần 1 (i=1): prob(20, 1) = (6 + 1*1 + 1) % 7 = 1. Kiểm tra T[1]. 4. T[1] đang trống. Gán T[1] = 20. * **Thêm 27:** 1. Tính hàm băm: h(27) = 27 % 7 = 6. Kiểm tra vị trí T[6]. 2. T[6] đã chứa 11. Thực hiện thăm dò. 3. Thăm dò lần 1 (i=1): prob(27, 1) = (6 + 1*1 + 1) % 7 = 1. Kiểm tra T[1]. 4. T[1] đã chứa 20. Thực hiện thăm dò. 5. Thăm dò lần 2 (i=2): prob(27, 2) = (6 + 2*2 + 2) % 7 = 5. Kiểm tra T[5]. 6. T[5] đang trống. Gán T[5] = 27. Bảng băm T sau khi thêm: T[0] = 16 T[1] = 20 T[2] = 9 T[3] = - T[4] = 23 T[5] = 27 T[6] = 11

Đề thi cuối kỳ môn Cấu trúc dữ liệu và giải thuật của Trường Đại học Công nghệ Thông tin, Học kỳ 2, năm học 2021-2022. Nội dung bao gồm các câu hỏi về thuật toán Insertion Sort, cây nhị phân tìm kiếm, cây B-Tree, kỹ thuật băm và biểu diễn đồ thị cho bài toán đường đi ngắn nhất.


5 câu hỏi 90 phút

Câu hỏi liên quan