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

Tính năng gợi ý liên kết: 3 liên kết được thêm.
nKhông có tóm lược sửa đổi
(Tính năng gợi ý liên kết: 3 liên kết được thêm.)
 
Trong [[khoa học máy tính]], '''bảng băm''' là một [[cấu trúc dữ liệu]] sử dụng [[hàm băm]] để ánh xạ từ giá trị xác định, được gọi là ''khóa'' (ví dụ như tên của một người), đến ''giá trị'' tương ứng (ví dụ như số điện thoại của họ). Do đó, bảng băm là một [[mảng kết hợp]]. Hàm băm được sử dụng để chuyển đổi từ khóa thành chỉ số (giá trị băm) trong mảng lưu trữ các giá trị tìm kiếm.
 
Trong trường hợp lý tưởng, hàm băm luôn chuyển đổi các khóa khác nhau đến các chỉ số khác nhau. Tuy nhiên trong thực tế, điều này hiếm khi xảy ra (trừ khi các khóa là cố định: không có thêm khóa mới nào được bổ sung vào bảng sau khi tạo bảng). Thay vào đó, hầu hết các thiết kế bảng băm đều giả sử các khóa khác nhau có thể được băm vào cùng một giá trị (gọi là va chạm băm), và cung cấp cách giải quyết va chạm.
}}</ref>
 
Trong nhiều trường hợp, bảng băm có hiệu quả hơn so với cây tìm kiếm hoặc bất kỳ cấu trúc dữ liệu tìm kiếm nào. Vì lý do này, chúng được sử dụng rộng rãi trong nhiều loại [[Phần mềm|phần mềm máy tính]], đặc biệt là cho mảng kết hợp, lập [[chỉ mục cơ sở dữ liệu]], tổ chức [[bộ nhớ đệm]], và [[cấu trúc dữ liệu tập hợp]].
 
==Hàm băm==
{{chính|Hàm băm}}
 
Tại trung tâm của thuật toán bảng băm là một mảng thường được gọi là bảng băm. Thuật toán bảng băm tính ra một chỉ số cho mỗi khóa và dùng chỉ số này để đặt dữ liệu vào mảng. [[Hàm số]] thực hiện việc tính toán này gọi là [[hàm băm]], f:
 
<math>index = f(key,\ array\_size)</math>