3 KHOA CÔNG NGHỆ THÔNG TIN GIỚI THIỆU • Tổ chức lưu trữ thông tin 100 nhân viên của một công ty ABC, mỗi nhân viên có mã số riêng EMP ID trong phạm vi [0, 99] • Ta có thể dùng mảng để lưu trữ với EMP[.]
GIỚI THIỆU • Tổ chức lưu trữ thơng tin 100 nhân viên công ty ABC, nhân viên có mã số riêng EMP_ID phạm vi [0, 99] • Ta dùng mảng để lưu trữ với EMP_ID mục tương ứng mảng Dữ liệu An Bình Minh … Ngọc EMP_ID … 99 KHOA CÔNG NGHỆ THÔNG TIN GIỚI THIỆU • Tổ chức lưu trữ thơng tin 100 nhân viên công ty ABC, nhân viên có mã số riêng EMP_ID phạm vi [00000, 99999] • Ta cần mảng có 100,000 phần tử để lưu trữ với EMP_ID mục tương ứng mảng Dữ liệu An Bình Minh … Ngọc … EMP_ID 00000 00001 00002 … 99 … 99999 Tốn nhiều khơng gian lưu trữ KHOA CƠNG NGHỆ THƠNG TIN GIỚI THIỆU • Cần giải pháp khác để lưu trữ 100 nhân viên với EMP_ID có phạm vi [00000, 99999] • Cần có hàm chuyển EMP_ID có số EMP_ID có số (hàm băm) • Cần có mảng ánh xạ khóa EMP_ID số tới vị trí mảng EMP_ID số (Bảng băm) KHOA CƠNG NGHỆ THƠNG TIN BẢNG BĂM • Bảng băm cấu trúc liệu mà khóa ánh xạ đến vị trí mảng thơng qua hàm băm • Trong bảng băm, phần tử có khóa k lưu mục có hàm băm h(k) khơng phải vị trí k • Q trình ánh xạ khóa vào vị trí phù hợp bảng băm gọi hashing • Khi hai khóa có vị trí bảng băm gọi xung đột (collision) KHOA CÔNG NGHỆ THÔNG TIN BẢNG BĂM • Bảng băm cấu trúc liệu mà khóa ánh xạ đến vị trí mảng thơng qua hàm băm KHOA CƠNG NGHỆ THƠNG TIN HÀM BĂM • Hàm băm cơng thức tốn học áp dụng ánh xạ cho khóa k tạo số nguyên dùng làm mục bảng băm • Một hàm băm thỏa mãn điều kiện sau: Tính tốn nhanh Các khóa phân bố bảng Ít xảy xung đột Xử lý loại khóa có kiểu liệu khác KHOA CÔNG NGHỆ THÔNG TIN CÁC PHƯƠNG PHÁP TẠO HÀM BĂM Phương pháp chia h(x) = x % M Ví dụ 1: tính giá trị băm cho khóa 1234 ; 5462, 2362 M = 10 (chọn số chẵn – kích thước bảng) h(1234) = 1234 % 10 = h(5462) = 5462 % 10 = h(2362) = 2362 % 10 = KHOA CÔNG NGHỆ THÔNG TIN Xung đột CÁC PHƯƠNG PHÁP TẠO HÀM BĂM Phương pháp chia h(x) = x % M Ví dụ 2: tính giá trị băm cho khóa 1234 ; 5462, 2362 M = (Chọn số lẻ – kích thước bảng) h(1234) = 1234 % = h(5462) = 5462 % = h(2362) = 2362 % = KHOA CÔNG NGHỆ THÔNG TIN Xung đột 10 ... (hàm băm) • Cần có mảng ánh xạ khóa EMP_ID số tới vị trí mảng EMP_ID số (Bảng băm) KHOA CƠNG NGHỆ THƠNG TIN BẢNG BĂM • Bảng băm cấu trúc liệu mà khóa ánh xạ đến vị trí mảng thơng qua hàm băm •... (collision) KHOA CƠNG NGHỆ THƠNG TIN BẢNG BĂM • Bảng băm cấu trúc liệu mà khóa ánh xạ đến vị trí mảng thơng qua hàm băm KHOA CƠNG NGHỆ THƠNG TIN HÀM BĂM • Hàm băm cơng thức tốn học áp dụng ánh xạ... hàm băm • Trong bảng băm, phần tử có khóa k lưu mục có hàm băm h(k) khơng phải vị trí k • Q trình ánh xạ khóa vào vị trí phù hợp bảng băm gọi hashing • Khi hai khóa có vị trí bảng băm gọi xung đột