Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 10
Số trang: 61
Loại file: pdf
Dung lượng: 1.47 MB
Lượt xem: 8
Lượt tải: 0
Xem trước 7 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 10 trình bày các nội dung chính sau: Bảng băm, hàm băm, phép băm phổ quát, phương pháp nối kết trực tiếp, phương pháp nối kết hợp nhất, phương pháp dò tuyến tính,... Mời các bạn cùng tham khảo để nắm nội dung chi tiết.
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 1: Chương 10 TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN BẢNG BĂMCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 Giới thiệu Phép Băm (Hashing): Là quá trình ánh xạ một giá trị khóa vào một vị trí trong bảng. Một hàm băm ánh xạ các giá trị khóa đến các vị trí ký hiệu: h Bảng băm (Hash Table) là mảng lưu trữ các record, ký hiệu: HTCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 HT có M vị trí được đánh chỉ mục từ 0 đến M- 1, M là kích thước của bảng băm. Bảng băm thích hợp cho các ứng dụng được cài đặt trên đĩa và bộ nhớ, là một cấu trúc dung hòa giữa thời gian truy xuất và không gian lưu trữ. 2 HÀM BĂM Hàm băm biến đổi một khóa vào một bảng các địa chỉ. K h h(K) Khóa có thể là dạng số hay số dạng chuỗi. Địa chỉ tính ra được là số nguyên trong khoảng 0 đến M-CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 với M là số địa chỉ có trên bảng băm H(k3) K1, K2,k3 h(k1) h(k2) 3 Hàm băm(Hash Functions) Hàm băm tốt thỏa mãn các điều kiện sau: Tính toán nhanh. Các khoá được phân bố đều trong bảng. Ít xảy ra đụng độ. Giải quyết vấn đề băm với các khoá không phải là số nguyên: Tìm cách biến đổ khoá thành số nguyênCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Trong ví dụ trên, loại bỏ dấu ‘-’ 9635-8904 đưa về số nguyên 96358904 Đối với chuỗi, sử dụng giá trị các ký tự trong bảng mã ASCCI Sau đó sử dụng các hàm băm chuẩn trên số nguyên. 4 HF: Phương pháp chia k mod 28 chọn các bits Dùng số dư: h(k) = k mod m 0110010111000011010 k là khoá, m là kích thước của bảng. vấn đề chọn giá trị m m = 2n (không tốt) nếu chọn m= 2n thông thường không tốtCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 h(k) = k mod 2n sẽ chọn cùng n bits cuối của k m là nguyên tố (tốt) Gia tăng sự phân bố đều Thông thường m được chọn là số nguyên tố gần với 2n Chẳng hạn bảng ~4000 mục, chọn m = 4093 5 HF: Phương pháp nhân Sử dụng h(k) = m (k A mod 1) k là khóa, m là kích thước bảng, A là hằng số: 0 < A < 1 Chọn m và ACẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 M thường chọn m = 2p Sự tối ưu trong việc chọn A phụ thuộc vào đặc trưng của dữ liệu. Theo Knuth chọn A = ½(5 -1) ≈ 0.618033987 được xem là tốt. ...
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 1: Chương 10 TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN BẢNG BĂMCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 Giới thiệu Phép Băm (Hashing): Là quá trình ánh xạ một giá trị khóa vào một vị trí trong bảng. Một hàm băm ánh xạ các giá trị khóa đến các vị trí ký hiệu: h Bảng băm (Hash Table) là mảng lưu trữ các record, ký hiệu: HTCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 HT có M vị trí được đánh chỉ mục từ 0 đến M- 1, M là kích thước của bảng băm. Bảng băm thích hợp cho các ứng dụng được cài đặt trên đĩa và bộ nhớ, là một cấu trúc dung hòa giữa thời gian truy xuất và không gian lưu trữ. 2 HÀM BĂM Hàm băm biến đổi một khóa vào một bảng các địa chỉ. K h h(K) Khóa có thể là dạng số hay số dạng chuỗi. Địa chỉ tính ra được là số nguyên trong khoảng 0 đến M-CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 với M là số địa chỉ có trên bảng băm H(k3) K1, K2,k3 h(k1) h(k2) 3 Hàm băm(Hash Functions) Hàm băm tốt thỏa mãn các điều kiện sau: Tính toán nhanh. Các khoá được phân bố đều trong bảng. Ít xảy ra đụng độ. Giải quyết vấn đề băm với các khoá không phải là số nguyên: Tìm cách biến đổ khoá thành số nguyênCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Trong ví dụ trên, loại bỏ dấu ‘-’ 9635-8904 đưa về số nguyên 96358904 Đối với chuỗi, sử dụng giá trị các ký tự trong bảng mã ASCCI Sau đó sử dụng các hàm băm chuẩn trên số nguyên. 4 HF: Phương pháp chia k mod 28 chọn các bits Dùng số dư: h(k) = k mod m 0110010111000011010 k là khoá, m là kích thước của bảng. vấn đề chọn giá trị m m = 2n (không tốt) nếu chọn m= 2n thông thường không tốtCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 h(k) = k mod 2n sẽ chọn cùng n bits cuối của k m là nguyên tố (tốt) Gia tăng sự phân bố đều Thông thường m được chọn là số nguyên tố gần với 2n Chẳng hạn bảng ~4000 mục, chọn m = 4093 5 HF: Phương pháp nhân Sử dụng h(k) = m (k A mod 1) k là khóa, m là kích thước bảng, A là hằng số: 0 < A < 1 Chọn m và ACẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 M thường chọn m = 2p Sự tối ưu trong việc chọn A phụ thuộc vào đặc trưng của dữ liệu. Theo Knuth chọn A = ½(5 -1) ≈ 0.618033987 được xem là tốt. ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Giải thuật 1 Phép băm phổ quát Phương pháp nối kết trực tiếp Phương pháp nối kết hợp nhất Phương pháp dò tuyến tínhTài liệu liên quan:
-
Đề 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 321 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 164 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 153 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 125 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 75 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 75 0 0 -
49 trang 73 0 0
-
54 trang 70 0 0