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

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

Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
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
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ 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
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
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ểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
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
 

Recently uploaded (20)

Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
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...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
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ểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
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...
 

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