SlideShare a Scribd company logo
1 of 13
Download to read offline
20/06/2010




ĐHSP

         Bảng băm (Hash table)


                      http://fit.hcmup.edu.vn/~tienttt




      Nội dung


             1   Đặt vấn đề


             2   Bảng băm


             3   Hàm băm


             4   Các phương pháp xử lý đụng độ




                                                         2
20/06/2010




                                                                     1
20/06/2010




        Đặt vấn đề

 VCD là một công ty điện thoại lớn, và họ muốn
 cung cấp cho khách hàng dịch vụ sau:

  Từ một số điện thoại, cho biết tên của thuê bao.
  Các số điện thoại nằm trong khoảng từ 0 – 107-1

 Cần phải tổ chức lưu trữ như thế nào để việc tìm
  kiếm một số điện thoại cho trước ít tốn công sức
  nhất trong giới hạn bộ nhớ cho phép

                                                             3
 20/06/2010




        Đặt vấn đề - Cách giải quyết 1

Dùng mảng với các index chính là các số điện
 thoại. Chi phí tìm kiếm là O(1), nhưng chi phí lưu
 trữ quá lớn – có quá nhiều vùng nhớ lãng phí.

  (null)        (null)     …     Lê Lợi     …     (null)
 000 – 000    000 – 0001   …   865 – 3999   …   999 - 9999




                                                             4
 20/06/2010




                                                                         2
20/06/2010




       Đặt vấn đề - cách giải quyết 2


Dùng danh sách liên kết, chi phí tìm kiếm là
 O(n), bộ nhớ chiếm O(n)



                 865-3999         865-9876
                  Lê Lợi           Lê Lai




                                                      5
20/06/2010




       Đặt vấn đề - cách giải quyết 3


Dùng cây nhị phân cân bằng. Chi phí tìm kiếm
 là O(logn), bộ nhớ chiếm O(n).
Có thể vượt qua ngưỡng O(logn) với chi phí
 về bộ nhớ chấp nhận được không?

             Dùng bảng băm (hashing table): chi phí
             tìm kiếm O(1), chi phí lưu trữ O(N +
             M), M là kích thước của bảng băm.

                                                      6
20/06/2010




                                                                  3
20/06/2010




       Bảng băm

Bảng băm tương tự như mảng nhưng kèm theo
 một hàm băm để ánh xạ nhiều giá trị vào cùng
 một phần tử trong mảng.
Chẳng hạn, dùng hàm modulo: vị trí chứa khóa
 k sẽ là k mod M (M là kích thước mảng băm).




                                             7
20/06/2010




       Hàm băm
Là hàm biến đổi khóa k của phần tử thành
 địa chỉ trong bảng băm.
Là một ánh xạ thích hợp từ tập các khóa U
 vào tập các địa chỉ A
   h: U       →A
             K → a = h(k)
      Cần tính toán nhanh
      Các khóa phân bố đều
      Ít xảy ra đụng độ
                                             8
20/06/2010




                                                         4
20/06/2010




       Ví dụ
Cho các khóa: 10, 35, 302, 23, 15, 74, 57, 19, 41.
Với hàm băm h(k) = k mod 10.




                                                      9
20/06/2010




       Hàm băm

Khi cần băm các khóa không nguyên thì phải
 làm thế nào?
   Tìm cách chuyển thành các giá trị nguyên
  Vd: Trong trường hợp chúng ta, loại bỏ dấu
    gạch nối: 865-3999 thành 8653999. Nếu các
    khóa là chuỗi ký tự: sử dụng mã ASCII.
   Sau đó dùng hàm băm nguyên bình thường.


                                                      10
20/06/2010




                                                                   5
20/06/2010




        Bảng băm – ví dụ (tt)


Thêm Lê Lai (865-9876)

Chuyện gì xảy ra nếu thêm Anh Đức (863-2234)?

      (null)   Lê Lai    (null)   (null)   Lê Lợi
         0       1         2        3        4




                                                     11
 20/06/2010




        Giải quyết đụng độ


 Phương pháp nối kết (Chaining)
 Phương pháp địa chỉ mở (Open-addressing)
       Phương pháp dò tuyến tính (Linear probing)
       Phương pháp dò bậc 2 (Quadratic probing)
       Phương pháp băm kép (Double hashing)




                                                     12
 20/06/2010




                                                                  6
20/06/2010




        Phương pháp nối kết

Xâu các phần tử có “khóa” được băm vào cùng một
địa chỉ thành một danh sách liên kết → Bảng băm là
một mảng các danh sách liên kết.




                                                          13
 20/06/2010




        PP nối kết - ví dụ
 Cho các khóa: 10, 35, 30, 21, 39, 23, 16, 74, 57, 19,
  41, 42.
 Với hàm băm h(k) = k mod 7.




                                                          14
 20/06/2010




                                                                       7
20/06/2010




         PP nối kết - Ví dụ

Ký tự thứ i trong bảng chữ cái được biểu diễn bởi số
i, dùng hàm băm h(k) = k mod 11 và phương pháp
kết nối để xử lý đụng độ thì kết quả như sau:




                                                          15
  20/06/2010




         Phương pháp địa chỉ mở
  Ý tưởng:
   Nếu vị trí hiện tại đã bị khóa khác chiếm, ta sẽ thử
   tìm đến vị trí kế tiếp nào đó trong bảng.
  Dò tuyến tính:
         H(k, i) = (H(k, i) + i) mod M
  Băm kép:
        H(k, i) = (H(k) + i*H2(k)) mod M
    i: thứ tự của lần thử (i = 0,1,2,…)
    H(k) vàH2(k) : hàm băm
    M: số phần tử của bảng băm
                                                          16
  20/06/2010




                                                                       8
20/06/2010




            Dò tuyến tính – thuật toán

      linear_probing_insert(K)
           if (table is full) error
           probe = h(K)
           while (table[probe] occupied)
                 probe = (probe + 1) mod M
           table[probe] = K


                                                      17
     20/06/2010




            Dò tuyến tính – ví dụ
      Cho các khóa: 10, 33, 302, 23, 15, 74, 53
      Với h(k) = k mod 10
 0            1    2     3    4    5    6    7    8   9
10

10                      33

10                302   33

10                302   33   23

10                302   33   23   15

10                302   33   23   15   74

10                302   33   23   15   74   53
                                                      18
     20/06/2010




                                                                   9
20/06/2010




       Dò tuyến tính – Đánh giá

Ít tốn bộ nhớ hơn dùng danh sách liên kết
 (chaining)
Chậm hơn dùng danh sách liên kết (có thể phải
 duyệt dọc theo bảng trên con đường dài)
Việc hủy một phần tử khó khăn:
   Hoặc đánh dấu ô tương ứng là “xóa”
   Hoặc chuyển một số phần tử ngược lên
    trước để điền vào ô bị xóa.

                                              19
20/06/2010




       Băm kép – Thuật toán

     double_hash_insert(K)
       if(table is full) error
       probe = h1(K)
       offset = h2(K)
       while (table[probe] occupied)
             probe = (probe + offset) mod M
       table[probe] = K

                                              20
20/06/2010




                                                          10
20/06/2010




        Băm kép – Ví dụ



h = k mod 13
 d = 7 – (k mod 7)
Lần lượt chèn các
 khóa sau vào bảng:
 18, 41, 22, 44, 59, 32,
 31, 73



                                        21
 20/06/2010




        Băm kép – Đánh giá

 Có ưu khuyết điểm giống thăm dò tuyến
  tính.
 Phân bố các khóa đều hơn so với thăm dò
  tuyến tính.
 Cần chọn hàm băm thích hợp để không
  bị lặp vô tận.


                                        22
 20/06/2010




                                                    11
20/06/2010




         Các chức năng cơ bản
Init: Khởi tạo một bảng băm với m danh sách rỗng
Insert: index = h(k)
     Chèn vào bảng tại vị trí Table[index]
Find:     index = h(k)
     Lần theo danh sách tại Table[index], tìm k và trả
     về thông tin tìm thấy (hoặc báo lỗi nếu ko tìm thấy).
Remove: index = h(k)
     Lần theo danh sách tại Table[index], tìm k và huỷ
 thông tin tìm thấy (hoặc báo lỗi nếu ko tìm thấy).

                                                      23
  20/06/2010




         Băm kép – Bài tập

Xét các khóa sau:
 13, 33, 29, 15, 50, 74, 20, 101
Cho biết kết quả của bảng băm khi dùng các kỹ
 thuật sau để giải quyết đụng độ: (dùng hàm băm
  h = k mod 7)
   Dùng pp nối kết
   Dùng pp thăm dò tuyến tính
   Dùng hàm băm kép: h1 = k mod 7
                         h2 = 5 – (k mod 5)
                                                      24
  20/06/2010




                                                                    12
20/06/2010




       Bài tập
Cho các khóa: E A S Y Q U E S T I O N
  Dùng hàm băm h(k) = k mod 13 với kỹ thuật
   dò tuyến tính
  Dùng hàm băm kép
   h1(k) = k mod 13; h2 = 1 + (k mod 11)




                                           25
20/06/2010




ĐHSP




                                                       13

More Related Content

What's hot

Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logicAnh Ngoc Phan
 
Hướng dẫn viết báo cáo chuẩn - HUST
Hướng dẫn viết báo cáo chuẩn - HUSTHướng dẫn viết báo cáo chuẩn - HUST
Hướng dẫn viết báo cáo chuẩn - HUSTThe Nguyen Manh
 
Dai so quan he
Dai so quan heDai so quan he
Dai so quan hePhùng Duy
 
thuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu sothuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu soKimkaty Hoang
 
Bài giảng sql server 2008
Bài giảng sql server 2008Bài giảng sql server 2008
Bài giảng sql server 2008thai
 
Ptit mô phỏng hệ thống truyền thông slide
Ptit mô phỏng hệ thống truyền thông slidePtit mô phỏng hệ thống truyền thông slide
Ptit mô phỏng hệ thống truyền thông slideLinh Linpine
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcducmanhkthd
 
Toán lớp 6 cơ bản và nâng cao theo sách mới Cánh Diều
Toán lớp 6 cơ bản và nâng cao theo sách mới Cánh DiềuToán lớp 6 cơ bản và nâng cao theo sách mới Cánh Diều
Toán lớp 6 cơ bản và nâng cao theo sách mới Cánh DiềuBồi dưỡng Toán lớp 6
 
Phan tich du_lieu_thong_ke_va_python
Phan tich du_lieu_thong_ke_va_pythonPhan tich du_lieu_thong_ke_va_python
Phan tich du_lieu_thong_ke_va_pythontNguyn33935
 
Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tinThanh Lee
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệHưởng Nguyễn
 
Giải số bằng mathlab
Giải số bằng mathlabGiải số bằng mathlab
Giải số bằng mathlabdvt1996
 
Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"Ham Hau
 
Bảng Student
Bảng StudentBảng Student
Bảng Studenthiendoanht
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư việnThe Nguyen Manh
 

What's hot (20)

Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logic
 
Hướng dẫn viết báo cáo chuẩn - HUST
Hướng dẫn viết báo cáo chuẩn - HUSTHướng dẫn viết báo cáo chuẩn - HUST
Hướng dẫn viết báo cáo chuẩn - HUST
 
Pp2
Pp2Pp2
Pp2
 
Dai so quan he
Dai so quan heDai so quan he
Dai so quan he
 
Đồng dư thức
Đồng dư thứcĐồng dư thức
Đồng dư thức
 
thuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu sothuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu so
 
Bài giảng sql server 2008
Bài giảng sql server 2008Bài giảng sql server 2008
Bài giảng sql server 2008
 
Ptit mô phỏng hệ thống truyền thông slide
Ptit mô phỏng hệ thống truyền thông slidePtit mô phỏng hệ thống truyền thông slide
Ptit mô phỏng hệ thống truyền thông slide
 
C3 2
C3 2C3 2
C3 2
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao học
 
Toán lớp 6 cơ bản và nâng cao theo sách mới Cánh Diều
Toán lớp 6 cơ bản và nâng cao theo sách mới Cánh DiềuToán lớp 6 cơ bản và nâng cao theo sách mới Cánh Diều
Toán lớp 6 cơ bản và nâng cao theo sách mới Cánh Diều
 
Phan tich du_lieu_thong_ke_va_python
Phan tich du_lieu_thong_ke_va_pythonPhan tich du_lieu_thong_ke_va_python
Phan tich du_lieu_thong_ke_va_python
 
Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tin
 
Luận văn: Giải số phương trình vi phân đại số bằng đa bước, 9đ
Luận văn: Giải số phương trình vi phân đại số bằng đa bước, 9đLuận văn: Giải số phương trình vi phân đại số bằng đa bước, 9đ
Luận văn: Giải số phương trình vi phân đại số bằng đa bước, 9đ
 
Kỹ thuật số
Kỹ thuật sốKỹ thuật số
Kỹ thuật số
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Giải số bằng mathlab
Giải số bằng mathlabGiải số bằng mathlab
Giải số bằng mathlab
 
Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"
 
Bảng Student
Bảng StudentBảng Student
Bảng Student
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
 

Similar to My Hash

Mot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc teMot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc teThai Duong Vu
 
05 tuong giao ham phan thuc p3_tlbg
05 tuong giao ham phan thuc p3_tlbg05 tuong giao ham phan thuc p3_tlbg
05 tuong giao ham phan thuc p3_tlbgHuynh ICT
 
TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...
TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...
TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...Nguyen Thanh Tu Collection
 
Www.mathvn.com 33 dang toan khao sat ham so ltdh
Www.mathvn.com   33 dang toan khao sat ham so ltdhWww.mathvn.com   33 dang toan khao sat ham so ltdh
Www.mathvn.com 33 dang toan khao sat ham so ltdhHuynh ICT
 
Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...
Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...
Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...https://www.facebook.com/garmentspace
 

Similar to My Hash (6)

Mot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc teMot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc te
 
05 tuong giao ham phan thuc p3_tlbg
05 tuong giao ham phan thuc p3_tlbg05 tuong giao ham phan thuc p3_tlbg
05 tuong giao ham phan thuc p3_tlbg
 
TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...
TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...
TUYỂN TẬP ĐỀ THI TOÁN VÀO LỚP 10 CHUYÊN KHOA HỌC TỰ NHIÊN HÀ NỘI NĂM 2022 CÓ ...
 
Www.mathvn.com 33 dang toan khao sat ham so ltdh
Www.mathvn.com   33 dang toan khao sat ham so ltdhWww.mathvn.com   33 dang toan khao sat ham so ltdh
Www.mathvn.com 33 dang toan khao sat ham so ltdh
 
Phu luca ham
Phu luca hamPhu luca ham
Phu luca ham
 
Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...
Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...
Luận án tiến sĩ toán học tính hyperbolic của không gian phức và nhóm các cr t...
 

More from mrcoffee282

Conflict Resolution Skill - Teamwork Team 1 - K15CMU-TCD1
Conflict Resolution Skill - Teamwork  Team 1 - K15CMU-TCD1Conflict Resolution Skill - Teamwork  Team 1 - K15CMU-TCD1
Conflict Resolution Skill - Teamwork Team 1 - K15CMU-TCD1mrcoffee282
 
Bai tap tham khao CSPE
Bai tap tham khao CSPEBai tap tham khao CSPE
Bai tap tham khao CSPEmrcoffee282
 
Database Project 2011
Database Project 2011Database Project 2011
Database Project 2011mrcoffee282
 
Database Project 2011
Database Project 2011Database Project 2011
Database Project 2011mrcoffee282
 
Ôn tập KTTMDT
Ôn tập KTTMDTÔn tập KTTMDT
Ôn tập KTTMDTmrcoffee282
 
Swapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải Triều
Swapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải TriềuSwapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải Triều
Swapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải Triềumrcoffee282
 

More from mrcoffee282 (6)

Conflict Resolution Skill - Teamwork Team 1 - K15CMU-TCD1
Conflict Resolution Skill - Teamwork  Team 1 - K15CMU-TCD1Conflict Resolution Skill - Teamwork  Team 1 - K15CMU-TCD1
Conflict Resolution Skill - Teamwork Team 1 - K15CMU-TCD1
 
Bai tap tham khao CSPE
Bai tap tham khao CSPEBai tap tham khao CSPE
Bai tap tham khao CSPE
 
Database Project 2011
Database Project 2011Database Project 2011
Database Project 2011
 
Database Project 2011
Database Project 2011Database Project 2011
Database Project 2011
 
Ôn tập KTTMDT
Ôn tập KTTMDTÔn tập KTTMDT
Ôn tập KTTMDT
 
Swapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải Triều
Swapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải TriềuSwapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải Triều
Swapping ball - Nguyễn Đình Nhật - Nguyễn Như Hải Triều
 

Recently uploaded

xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfXem Số Mệnh
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàNguyen Thi Trang Nhung
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxDungxPeach
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdfltbdieu
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiNgocNguyen591215
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phươnghazzthuan
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoidnghia2002
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạowindcances
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhdangdinhkien2k4
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emTrangNhung96
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnpmtiendhti14a5hn
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietNguyễn Quang Huy
 

Recently uploaded (20)

xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ em
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 

My Hash

  • 1. 20/06/2010 ĐHSP Bảng băm (Hash table) http://fit.hcmup.edu.vn/~tienttt Nội dung 1 Đặt vấn đề 2 Bảng băm 3 Hàm băm 4 Các phương pháp xử lý đụng độ 2 20/06/2010 1
  • 2. 20/06/2010 Đặt vấn đề VCD là một công ty điện thoại lớn, và họ muốn cung cấp cho khách hàng dịch vụ sau:  Từ một số điện thoại, cho biết tên của thuê bao.  Các số điện thoại nằm trong khoảng từ 0 – 107-1 Cần phải tổ chức lưu trữ như thế nào để việc tìm kiếm một số điện thoại cho trước ít tốn công sức nhất trong giới hạn bộ nhớ cho phép 3 20/06/2010 Đặt vấn đề - Cách giải quyết 1 Dùng mảng với các index chính là các số điện thoại. Chi phí tìm kiếm là O(1), nhưng chi phí lưu trữ quá lớn – có quá nhiều vùng nhớ lãng phí. (null) (null) … Lê Lợi … (null) 000 – 000 000 – 0001 … 865 – 3999 … 999 - 9999 4 20/06/2010 2
  • 3. 20/06/2010 Đặt vấn đề - cách giải quyết 2 Dùng danh sách liên kết, chi phí tìm kiếm là O(n), bộ nhớ chiếm O(n) 865-3999 865-9876 Lê Lợi Lê Lai 5 20/06/2010 Đặt vấn đề - cách giải quyết 3 Dùng cây nhị phân cân bằng. Chi phí tìm kiếm là O(logn), bộ nhớ chiếm O(n). Có thể vượt qua ngưỡng O(logn) với chi phí về bộ nhớ chấp nhận được không? Dùng bảng băm (hashing table): chi phí tìm kiếm O(1), chi phí lưu trữ O(N + M), M là kích thước của bảng băm. 6 20/06/2010 3
  • 4. 20/06/2010 Bảng băm Bảng băm tương tự như mảng nhưng kèm theo một hàm băm để ánh xạ nhiều giá trị vào cùng một phần tử trong mảng. Chẳng hạn, dùng hàm modulo: vị trí chứa khóa k sẽ là k mod M (M là kích thước mảng băm). 7 20/06/2010 Hàm băm Là hàm biến đổi khóa k của phần tử thành địa chỉ trong bảng băm. Là một ánh xạ thích hợp từ tập các khóa U vào tập các địa chỉ A h: U →A K → a = h(k)  Cần tính toán nhanh  Các khóa phân bố đều  Ít xảy ra đụng độ 8 20/06/2010 4
  • 5. 20/06/2010 Ví dụ Cho các khóa: 10, 35, 302, 23, 15, 74, 57, 19, 41. Với hàm băm h(k) = k mod 10. 9 20/06/2010 Hàm băm Khi cần băm các khóa không nguyên thì phải làm thế nào?  Tìm cách chuyển thành các giá trị nguyên Vd: Trong trường hợp chúng ta, loại bỏ dấu gạch nối: 865-3999 thành 8653999. Nếu các khóa là chuỗi ký tự: sử dụng mã ASCII.  Sau đó dùng hàm băm nguyên bình thường. 10 20/06/2010 5
  • 6. 20/06/2010 Bảng băm – ví dụ (tt) Thêm Lê Lai (865-9876) Chuyện gì xảy ra nếu thêm Anh Đức (863-2234)? (null) Lê Lai (null) (null) Lê Lợi 0 1 2 3 4 11 20/06/2010 Giải quyết đụng độ Phương pháp nối kết (Chaining) Phương pháp địa chỉ mở (Open-addressing)  Phương pháp dò tuyến tính (Linear probing)  Phương pháp dò bậc 2 (Quadratic probing)  Phương pháp băm kép (Double hashing) 12 20/06/2010 6
  • 7. 20/06/2010 Phương pháp nối kết Xâu các phần tử có “khóa” được băm vào cùng một địa chỉ thành một danh sách liên kết → Bảng băm là một mảng các danh sách liên kết. 13 20/06/2010 PP nối kết - ví dụ Cho các khóa: 10, 35, 30, 21, 39, 23, 16, 74, 57, 19, 41, 42. Với hàm băm h(k) = k mod 7. 14 20/06/2010 7
  • 8. 20/06/2010 PP nối kết - Ví dụ Ký tự thứ i trong bảng chữ cái được biểu diễn bởi số i, dùng hàm băm h(k) = k mod 11 và phương pháp kết nối để xử lý đụng độ thì kết quả như sau: 15 20/06/2010 Phương pháp địa chỉ mở Ý tưởng: Nếu vị trí hiện tại đã bị khóa khác chiếm, ta sẽ thử tìm đến vị trí kế tiếp nào đó trong bảng. Dò tuyến tính: H(k, i) = (H(k, i) + i) mod M Băm kép: H(k, i) = (H(k) + i*H2(k)) mod M i: thứ tự của lần thử (i = 0,1,2,…) H(k) vàH2(k) : hàm băm M: số phần tử của bảng băm 16 20/06/2010 8
  • 9. 20/06/2010 Dò tuyến tính – thuật toán linear_probing_insert(K) if (table is full) error probe = h(K) while (table[probe] occupied) probe = (probe + 1) mod M table[probe] = K 17 20/06/2010 Dò tuyến tính – ví dụ Cho các khóa: 10, 33, 302, 23, 15, 74, 53 Với h(k) = k mod 10 0 1 2 3 4 5 6 7 8 9 10 10 33 10 302 33 10 302 33 23 10 302 33 23 15 10 302 33 23 15 74 10 302 33 23 15 74 53 18 20/06/2010 9
  • 10. 20/06/2010 Dò tuyến tính – Đánh giá Ít tốn bộ nhớ hơn dùng danh sách liên kết (chaining) Chậm hơn dùng danh sách liên kết (có thể phải duyệt dọc theo bảng trên con đường dài) Việc hủy một phần tử khó khăn:  Hoặc đánh dấu ô tương ứng là “xóa”  Hoặc chuyển một số phần tử ngược lên trước để điền vào ô bị xóa. 19 20/06/2010 Băm kép – Thuật toán double_hash_insert(K) if(table is full) error probe = h1(K) offset = h2(K) while (table[probe] occupied) probe = (probe + offset) mod M table[probe] = K 20 20/06/2010 10
  • 11. 20/06/2010 Băm kép – Ví dụ h = k mod 13 d = 7 – (k mod 7) Lần lượt chèn các khóa sau vào bảng: 18, 41, 22, 44, 59, 32, 31, 73 21 20/06/2010 Băm kép – Đánh giá Có ưu khuyết điểm giống thăm dò tuyến tính. Phân bố các khóa đều hơn so với thăm dò tuyến tính. Cần chọn hàm băm thích hợp để không bị lặp vô tận. 22 20/06/2010 11
  • 12. 20/06/2010 Các chức năng cơ bản Init: Khởi tạo một bảng băm với m danh sách rỗng Insert: index = h(k) Chèn vào bảng tại vị trí Table[index] Find: index = h(k) Lần theo danh sách tại Table[index], tìm k và trả về thông tin tìm thấy (hoặc báo lỗi nếu ko tìm thấy). Remove: index = h(k) Lần theo danh sách tại Table[index], tìm k và huỷ thông tin tìm thấy (hoặc báo lỗi nếu ko tìm thấy). 23 20/06/2010 Băm kép – Bài tập Xét các khóa sau: 13, 33, 29, 15, 50, 74, 20, 101 Cho biết kết quả của bảng băm khi dùng các kỹ thuật sau để giải quyết đụng độ: (dùng hàm băm h = k mod 7)  Dùng pp nối kết  Dùng pp thăm dò tuyến tính  Dùng hàm băm kép: h1 = k mod 7 h2 = 5 – (k mod 5) 24 20/06/2010 12
  • 13. 20/06/2010 Bài tập Cho các khóa: E A S Y Q U E S T I O N  Dùng hàm băm h(k) = k mod 13 với kỹ thuật dò tuyến tính  Dùng hàm băm kép h1(k) = k mod 13; h2 = 1 + (k mod 11) 25 20/06/2010 ĐHSP 13