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

Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramHuy Vũ
 
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự NhiênLập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự NhiênMasterCode.vn
 
Quản trị dự án công nghệ thông tin
Quản trị dự án công nghệ thông tinQuản trị dự án công nghệ thông tin
Quản trị dự án công nghệ thông tinAnh Dam
 
Mẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnMẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnJohn MacTavish
 
Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++nataliej4
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderhoamonkhach
 
Giáo trình Tester Full
Giáo trình Tester FullGiáo trình Tester Full
Giáo trình Tester FullThanh Sơn
 
Huong dan thi nghiem wireshark
Huong dan thi nghiem wiresharkHuong dan thi nghiem wireshark
Huong dan thi nghiem wiresharkhien tran
 
Bo de-thi-va-loi-giai-xac-xuat-thong-ke
Bo de-thi-va-loi-giai-xac-xuat-thong-keBo de-thi-va-loi-giai-xac-xuat-thong-ke
Bo de-thi-va-loi-giai-xac-xuat-thong-keNam Cengroup
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsaBảo Điệp
 
Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...
Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...
Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...nataliej4
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựAskSock Ngô Quang Đạo
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...
BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...
BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...Hien Dam
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàngAn Nguyen
 
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...jackjohn45
 

What's hot (20)

Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự NhiênLập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
 
Quản trị dự án công nghệ thông tin
Quản trị dự án công nghệ thông tinQuản trị dự án công nghệ thông tin
Quản trị dự án công nghệ thông tin
 
Mẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớnMẫu báo cáo bài tập lớn
Mẫu báo cáo bài tập lớn
 
Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++Đồ Án Quản Lý Bán Hàng bằng C++
Đồ Án Quản Lý Bán Hàng bằng C++
 
bai tap co loi giai xac suat thong ke
bai tap co loi giai xac suat thong kebai tap co loi giai xac suat thong ke
bai tap co loi giai xac suat thong ke
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
 
Giáo trình Tester Full
Giáo trình Tester FullGiáo trình Tester Full
Giáo trình Tester Full
 
Huong dan thi nghiem wireshark
Huong dan thi nghiem wiresharkHuong dan thi nghiem wireshark
Huong dan thi nghiem wireshark
 
Bo de-thi-va-loi-giai-xac-xuat-thong-ke
Bo de-thi-va-loi-giai-xac-xuat-thong-keBo de-thi-va-loi-giai-xac-xuat-thong-ke
Bo de-thi-va-loi-giai-xac-xuat-thong-ke
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
 
Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...
Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...
Thực trạng và giải pháp nâng cao hiệu quả kinh doanh nhập khẩu hàng gia dụng ...
 
Luận văn: Xây dựng hệ thống lưu trữ tập trung, HOT
Luận văn: Xây dựng hệ thống lưu trữ tập trung, HOTLuận văn: Xây dựng hệ thống lưu trữ tập trung, HOT
Luận văn: Xây dựng hệ thống lưu trữ tập trung, HOT
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...
BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...
BTL phân tích thiết kế hệ thống- Đề tài quản lý nhập hàng thực phẩm khô tại s...
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàng
 
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 

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

ô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
 
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
 
cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11zedgaming208
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
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
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiTruongThiDiemQuynhQP
 
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
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...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
 

Recently uploaded (20)

ô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
 
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
 
cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
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ệ...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
 
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...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
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í
 

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