Khác biệt giữa bản sửa đổi của “Hàm băm”

Nội dung được xóa Nội dung được thêm vào
Damphat (thảo luận | đóng góp)
Không có tóm lược sửa đổi
Damphat (thảo luận | đóng góp)
Không có tóm lược sửa đổi
Dòng 1:
[[Hình:Hash_function_vi.svg|nhỏ|330px|phải|Một hàm băm tiêu biểu đang hoạt động]]
Một '''hàmHàm băm''' ([[tiếng Anh]]: ''hash function'') là giải thuật nhằm sinh ra các '''giá trị băm''' tương ứng với mỗi '''khối dữ liệu''' (có thể là một chuỗi kí tự, một đối tượng trong lập trình hướng đối tượng, v.v...). '''Giá trị băm''' đóng vai gần như một '''khóa''' để phân biệt các '''khối dữ liệu''', tuy nhiên, người ta chấp '''hiện tượng trùng khóa''' hay còn gọi là [[đụng độ băm|đụng độ]] và cố gắng cải thiện giải thuật để giảm thiểu sự [[đụng độ băm|đụng độ]] đó. Hàm băm thường được dùng trong [[[bảng băm]] nhằm giảm '''chi phí tính toán''' khi tìm một '''khối dữ liệu''' trong một tập hợp (nhờ việc so sánh các '''giá trị băm''' nhanh hơn việc so sánh những ''khối dữ liệu'' có kích thước lớn).
 
Vì tính thông dụng của [[bảng băm]], ngày nay, đa số ngôn ngữ lập trình đều cung cấp thư viện ứng dụng [[bảng băm]], thường gọi là thư viện collection trong đó có các vấn đề như: [[tập hợp]] (collection), [[danh sách]] (list), [[bảng]](table), [[ánh xạ]] (mapping), [[từ điển (lập trình) | từ điển]] (dictionary)). Thông thường, các [[lập trình viên]] chỉ cần viết [[hàm băm]] cho các đối tượng nhằm tích hợp với thư viện [[bảng băm]] đã được xây dựng sẵn.