intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cấu trúc dữ liệu và giải thuật: Tìm kiếm theo bảng băm - ĐHKHTN

Chia sẻ: Phan Phan | Ngày: | Loại File: PDF | Số trang:11

102
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Cấu trúc dữ liệu và giải thuật: Tìm kiếm theo bảng băm" trình bày về các nội dung: khái quát về bảng băm, độ phức tạp thuật toán, hàm băm, khó khăn của hàm băm, sự đụng độ, những yêu cầu đối với hàm băm, phương pháp xử lý đụng độ. Để biết rõ hơn về nội dung chi tiết, mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Tìm kiếm theo bảng băm - ĐHKHTN

31<br /> <br /> Hash Table<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> 32<br /> <br /> <br /> <br /> <br /> <br /> Vấn đề: Cho trước 1 tập S gồm các phần tử<br /> được đặc trưng bởi giá trị khóa. Trên giá trị các<br /> khóa này có quan hệ thứ tự. Tổ chức S như thế<br /> nào để tìm kiếm 1 phần tử có khóa k cho trước<br /> có độ phức tạp ít nhất trong giới hạn bộ nhớ<br /> cho phép?<br /> Ý tưởng: Biến đổi khóa k thành một số (bằng<br /> hàm hash) và sử dụng số này như là địa chỉ để<br /> tìm kiếm trên bảng dữ liệu.<br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> © FIT-HCMUS 2011<br /> <br /> 1<br /> <br /> 33<br /> <br /> ĐNĐTiến<br /> <br /> +84.95.8345678<br /> <br /> VCNam<br /> <br /> +84.91.2345678<br /> <br /> NTHNhung<br /> <br /> +84.90.9345678<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> 34<br /> <br /> <br /> <br /> <br /> Chi phí tìm kiếm trung bình: O(1)<br /> Chi phí tìm kiếm trong trường hợp xấu nhất:<br /> O(n) (rất ít gặp).<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> © FIT-HCMUS 2011<br /> <br /> 2<br /> <br /> 35<br /> <br /> <br /> <br /> <br /> <br /> Định nghĩa: là hàm biến đổi khóa k của phần tử<br /> thành địa chỉ trong bảng băm.<br /> Ví dụ: H(k) = k mod M.<br /> Tổng quát về phép biến đổi khóa: Là 1 ánh xạ<br /> thích hợp từ tập các khóa U vào tập các địa chỉ<br /> A.<br /> H: U  A<br /> k  a = h(k)<br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> 36<br /> <br /> <br /> <br /> <br /> <br /> Tập các giá trị khóa (U) có thể lớn hơn rất nhiều<br /> so với số khóa thực tế (K) rất nhiều.<br /> Ví dụ: Quản lý danh sách 1000 sinh viên, mã<br /> sinh viên gồm 7 chữ số.<br /> <br /> Có U = 107 khóa so với K = 1000.<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> © FIT-HCMUS 2011<br /> <br /> 3<br /> <br /> 37<br /> <br /> T<br /> <br /> . ..<br /> . ..<br /> . .. .<br /> Tập U<br /> <br /> 1<br /> <br /> 6<br /> <br /> 2<br /> <br /> 5<br /> <br /> 4<br /> Tập K<br /> 10<br /> <br /> 9<br /> <br /> 3<br /> <br /> 8<br /> <br /> 7<br /> <br /> 1<br /> 2<br /> 3<br /> 4<br /> 5<br /> 6<br /> 7<br /> 8<br /> 9<br /> 10<br /> <br /> Key<br /> <br /> Data<br /> <br /> 3<br /> 4<br /> <br /> 8<br /> <br /> 10<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> 38<br /> <br /> <br /> <br /> k1, k2  K:<br /> k1 ≠ k2, H(k1) = H(k2)<br /> <br /> ..<br /> .<br /> 9<br /> <br /> 6<br /> <br /> 1<br /> <br /> .<br /> .<br /> ..<br /> .. .<br /> <br /> Tập U<br /> <br /> 7<br /> <br /> T<br /> <br /> H(3)<br /> H(4)<br /> <br /> 5<br /> <br /> 4<br /> Tập K<br /> 10<br /> <br /> 3<br /> <br /> 8<br /> <br /> 2<br /> <br /> H(2) = H(8)<br /> H(10)<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> © FIT-HCMUS 2011<br /> <br /> 4<br /> <br /> 39<br /> <br /> Ít xảy ra<br /> đụng<br /> độ.<br /> <br /> Tính<br /> toán<br /> nhanh.<br /> <br /> Các khóa<br /> phân bố đều.<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> 40<br /> <br /> <br /> <br /> <br /> <br /> Xét lại ví dụ về danh sách sinh viên:<br /> Với kích thước bảng là M = 1000, ta có thể chọn<br /> hàm băm như sau:<br /> H(k) = k mod M.<br /> Khóa này thỏa mãn yêu cầu tính toán nhanh và<br /> trải đều trên bảng.<br /> <br /> Cấu trúc dữ liệu và giải thuật – HCMUS 2011<br /> <br /> © FIT-HCMUS 2011<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2