Bài giảng Cấu trúc dữ liệu và giải thuật: Bảng băm - Bùi Tiến Lên
Số trang: 51
Loại file: pdf
Dung lượng: 838.32 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 6 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: Bảng băm cung cấp cho người học các kiến thức: Khái niệm các lý thuyết đồng dư, áp dụng lý thuyết đồng dư, bảng băm, chuyển kiểu cho khóa, các loại hàm băm
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ảng băm - Bùi Tiến Lên BẢNG BĂM Bùi Tiến Lên 01/01/2017CuuDuongThanCong.com https://fb.com/tailieudientucntt LÝ THUYẾT ĐỒNG DƯCuuDuongThanCong.com https://fb.com/tailieudientucntt Các khái niệm Định nghĩa 1 Cho số nguyên dương n ∈ N, hai số nguyên a, b ∈ Z được gọi là đồng dư theo mô-đun n nếu cả hai có cùng số dư khi chia cho n. Được ký hiệu a ≡ b (modn) Ví dụ 1 Ta có I 11 ≡ 8 (mod3) (vì 11 và 8 chia cho 3 đều có số dư là 2) I −2 ≡ 5 (mod7) (vì -2 và 5 chia cho 7 đều có số dư là 5) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 3 Một số tính chất Tính chất Quan hệ đồng dư là một quan hệ tương đương I Tính phản xạ a ≡ a (modn) I Tính đối xứng a ≡ b (modn) ⇒ b ≡ a (modn) I Tính bắc cầu a ≡ b (modn) và b ≡ c (modn) ⇒ a ≡ c (modn) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 4 Một số tính chất (cont.) Tính chất Nếu a1 ≡ b1 (modn) a2 ≡ b2 (modn) Thì I a1 + a2 ≡ b1 + b2 (modn) I a1 − a2 ≡ b1 − b2 (modn) I a1 a2 ≡ b1 b2 (modn) I a1k ≡ b1k (modn) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 5 Áp dụng Ví dụ 2 Tìm phần dư của phép chia 332 cho 17 Lời giải tính trực tiếp I Ta có 332 = 1853020188851841 I Và 1853020188851841 mod 17 = 1 I Vậy, phần dư của phép chia 332 cho 17 là 1 Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 6 Áp dụng (cont.) Lời giải đồng dư Ta có 2 22 32 22 3 ≡3 (mod17) 2 22 ≡ 92 (mod17) 22 22 ≡ 812 (mod17) ≡ 152 (mod17) 2 2 ≡ 2252 (mod17) ≡ 42 (mod17) ≡ 162 (mod17) ≡ 256 (mod17) ≡ 1 (mod17) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 7 Áp dụng (cont.) Ví dụ 3 Tìm hai chữ số cuối cùng của số 716 Lời giải Hai chữ số cuối cùng chính là phần dư của phép chia 716 cho 100. Ta có 22 16 22 7 ≡7 (mod100) 2 22 ≡ 49 (mod100) 2 2 ≡ 24012 (mod100) ≡ 12 (mod100) ≡ 1 (mod100) Vậy, hai chữ số cuối cùng là 01 Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 8 BẢNG BĂMCuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu I Các thao tác tìm kiếm trên các cấu trúc dữ liệu như danh sách, cây nhị phân, ... thường dựa trên việc so sánh khóa của các phần tử của cấu trúc dữ liệu. Do đó, thời gian thao tác sẽ phụ thuộc vào kích thước của dữ liệu I Bảng băm là một cấu trúc dữ liệu có thể giảm chi phí đến O(1) (không phụ thuộc vào kích thước của dữ liệu) I Nội dung được tham khảo từ http://www.giaithuatlaptrinh.com/ Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10 Các định nghĩa Định nghĩa 2 Bảng băm (hash table) là một cấu trúc dữ liệu chứa các phần tử có “địa chỉ”. Bảng băm thường là một mảng T có m phần tử. Tuy nhiên, nó có những biến thể khác nhau Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 11 Các định nghĩa (cont.) Định nghĩa 3 Hàm băm (hash function) là một ánh xạ khoá thành địa chỉ h: U → {0, 1, ..., m − 1} (1) k 7→ h (k) I U là tập các khóa I {0, 1, ..., m − 1} là tập các địa chỉ trên bảng băm I Giá trị h(k) gọi là hash code hoặc địa chỉ Spring 2017CuuDuongThanCong.com ...
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ảng băm - Bùi Tiến Lên BẢNG BĂM Bùi Tiến Lên 01/01/2017CuuDuongThanCong.com https://fb.com/tailieudientucntt LÝ THUYẾT ĐỒNG DƯCuuDuongThanCong.com https://fb.com/tailieudientucntt Các khái niệm Định nghĩa 1 Cho số nguyên dương n ∈ N, hai số nguyên a, b ∈ Z được gọi là đồng dư theo mô-đun n nếu cả hai có cùng số dư khi chia cho n. Được ký hiệu a ≡ b (modn) Ví dụ 1 Ta có I 11 ≡ 8 (mod3) (vì 11 và 8 chia cho 3 đều có số dư là 2) I −2 ≡ 5 (mod7) (vì -2 và 5 chia cho 7 đều có số dư là 5) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 3 Một số tính chất Tính chất Quan hệ đồng dư là một quan hệ tương đương I Tính phản xạ a ≡ a (modn) I Tính đối xứng a ≡ b (modn) ⇒ b ≡ a (modn) I Tính bắc cầu a ≡ b (modn) và b ≡ c (modn) ⇒ a ≡ c (modn) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 4 Một số tính chất (cont.) Tính chất Nếu a1 ≡ b1 (modn) a2 ≡ b2 (modn) Thì I a1 + a2 ≡ b1 + b2 (modn) I a1 − a2 ≡ b1 − b2 (modn) I a1 a2 ≡ b1 b2 (modn) I a1k ≡ b1k (modn) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 5 Áp dụng Ví dụ 2 Tìm phần dư của phép chia 332 cho 17 Lời giải tính trực tiếp I Ta có 332 = 1853020188851841 I Và 1853020188851841 mod 17 = 1 I Vậy, phần dư của phép chia 332 cho 17 là 1 Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 6 Áp dụng (cont.) Lời giải đồng dư Ta có 2 22 32 22 3 ≡3 (mod17) 2 22 ≡ 92 (mod17) 22 22 ≡ 812 (mod17) ≡ 152 (mod17) 2 2 ≡ 2252 (mod17) ≡ 42 (mod17) ≡ 162 (mod17) ≡ 256 (mod17) ≡ 1 (mod17) Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 7 Áp dụng (cont.) Ví dụ 3 Tìm hai chữ số cuối cùng của số 716 Lời giải Hai chữ số cuối cùng chính là phần dư của phép chia 716 cho 100. Ta có 22 16 22 7 ≡7 (mod100) 2 22 ≡ 49 (mod100) 2 2 ≡ 24012 (mod100) ≡ 12 (mod100) ≡ 1 (mod100) Vậy, hai chữ số cuối cùng là 01 Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 8 BẢNG BĂMCuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu I Các thao tác tìm kiếm trên các cấu trúc dữ liệu như danh sách, cây nhị phân, ... thường dựa trên việc so sánh khóa của các phần tử của cấu trúc dữ liệu. Do đó, thời gian thao tác sẽ phụ thuộc vào kích thước của dữ liệu I Bảng băm là một cấu trúc dữ liệu có thể giảm chi phí đến O(1) (không phụ thuộc vào kích thước của dữ liệu) I Nội dung được tham khảo từ http://www.giaithuatlaptrinh.com/ Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10 Các định nghĩa Định nghĩa 2 Bảng băm (hash table) là một cấu trúc dữ liệu chứa các phần tử có “địa chỉ”. Bảng băm thường là một mảng T có m phần tử. Tuy nhiên, nó có những biến thể khác nhau Spring 2017CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 11 Các định nghĩa (cont.) Định nghĩa 3 Hàm băm (hash function) là một ánh xạ khoá thành địa chỉ h: U → {0, 1, ..., m − 1} (1) k 7→ h (k) I U là tập các khóa I {0, 1, ..., m − 1} là tập các địa chỉ trên bảng băm I Giá trị h(k) gọi là hash code hoặc địa chỉ Spring 2017CuuDuongThanCong.com ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Cấu trúc dữ liệu và giải thuật Hàm băm Phân loại hàm băm Lý thuyết đồng dưGợi ý tà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 318 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 162 0 0 -
3 trang 162 3 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 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 150 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 -
10 trang 138 0 0
-
57 trang 133 1 0