Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 22: Hàm băm
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 22: Hàm băm Cấu trúc dữ liệu và giải thuật Bài 22: Hàm băm Giảng viên: TS. Ngo Huu Phuc Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com1 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical UniversityBài 22: Hàm bămNội dung: 22.1. Bài toán. 22.2. Hàm băm. 22.3. Giải quyết xung đột. 22.4. Một số ví dụ sử dụng hàm băm.2 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (1/9) Giả sử cần lưu trữ một số bản ghi và thực hiện các thao tác: Thêm: thêm một bản ghi Xóa: xóa một bản ghi Tìm kiếm: tìm kiếm một bản ghi Hãy đưa ra cách tổ chức để thực hiện hiệu quả các công việc trên.3 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (2/9) – Sử dụng mảng Sử dụng mảng không được sắp xếp Thêm: thêm vào cuối mảng->O(1) Xóa: mất nhiều thời gian tìm vị trí cần xóa và dồn mảng->O(n) Tìm kiếm: tìm kiếm tuần tự->O(n) Sử dụng mảng được sắp xếp Thêm: phải tìm vị trí thêm vào->O(n) Xóa: mất nhiều thời gian tìm vị trí cần xóa và dồn mảng->O(n) Tìm kiếm: tìm kiếm nhị phân->O(log(n))4 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (3/9) – Sử dụng DSLK Thêm: thêm vào vị trí bất kỳ nhanh->O(1) Xóa: nhanh trong tổ chức các nút, nhưng chậm trong tìm kiếm nút cần khóa->O(n) Tìm kiếm: tìm kiếm tuần tự->O(n)5 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (4/9) – dùng như bảng Giả sử cần lưu trữ 1000 bản ghi về sinh viên và tìm kiếm chúng theo ID ID Họ và tên Điểm 0012345 Nguyễn Văn A 10 0033333 Nguyễn Văn B 9 0056789 Nguyễn Văn C 8 … … … 9801010 Nguyễn Thị A 7 9802020 Nguyễn Thị B 8 … … … 9903030 Trần Văn A 9 9908080 Trần Văn B 106 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (5/9) – dùng như bảng Dùng một mảng rất lớn để lưu trữ (index 0..9999999). Chỉ số của mảng bằng với chỉ số id của sinh viên, i.e. ví dụ sinh viên với studid 0012345 thì được lưu trữ tại A[12345] Tên Điểm … … … 12345 Nguyễn Văn A 10 … … … 33333 Nguyễn Văn B 9 … … … 56789 Nguyễn Văn C 8 … … … 9801010 Nguyễn Thị A 7 … … … 9802020 Nguyễn Thị B 8 … … … 9999999 … …7 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (6/9) – dùng như bảngMột số nhận xét: Đánh giá các thao tác Thêm: rất nhanh O(1) Xóa: rất nhanh O(1) Tìm kiếm: rất nhanh O(1) Nhưng quá tốn kém bộ nhớ->không hiệu quả8 @copyright by PhD Ngo Huu Phuc, Le Quy Don Technical University22.1. Bài toán (7/9) – dùng hàm băm function Hash(key: KeyType): integer;Giả sử có 1 hàm băm lý tưởng. Nó H(‘0012345’) = 134ánh xạ khóa (ID) của 1000 bản ghi H(‘0033333’) = 67vào các giá trị nguyên 0..999, hai H(‘0056789’) = 764 …khóa khác nhau cho hai số nguyên H(‘9908080’) = 3khác nhau.9 @copyright b ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu và giải thuật Bài giảng Hàm băm Giải quyết xung đột Sử dụng hàm bămTài liệu cùng danh mục:
-
62 trang 388 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 371 6 0 -
Bài giảng Phân tích thiết kế hệ thống thông tin: Chương 3 - Hệ điều hành Windowns XP
39 trang 318 0 0 -
Phương pháp truyền dữ liệu giữa hai điện thoại thông minh qua môi trường ánh sáng nhìn thấy
6 trang 308 0 0 -
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 299 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 289 1 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 279 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 276 2 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 265 0 0 -
Một số vấn đề về chuyển đổi số và ứng dụng trong doanh nghiệp
11 trang 247 0 0
Tài liệu mới:
-
Bài giảng Khai phá dữ liệu - Chương 4: Phân cụm dữ liệu
47 trang 0 0 0 -
Bài giảng Khai phá dữ liệu - Chương 1: Khái quát về khai phá dữ liệu
41 trang 0 0 0 -
Bài giảng Khai phá dữ liệu: Chương 3 - Phan Mạnh Thường
39 trang 0 0 0 -
Bài giảng Mạng máy tính: Chương 8 - CĐ CNTT Hữu nghị Việt Hàn
56 trang 0 0 0 -
39 trang 0 0 0
-
15 trang 1 0 0
-
Luận văn: KINH TẾ - XÃ HỘI HUYỆN CAO LỘC TỈNH LẠNG SƠN TRONG THỜI KỲ ĐỔI MỚI (1986 - 2009)
133 trang 0 0 0 -
22 trang 0 0 0
-
5 trang 2 0 0
-
Quyết định số 10/2019/QĐ-UBND tỉnh QuảngNinh
9 trang 2 0 0