cuốn sách gpt4 ai đã làm

Thuật toán - Chuyển đổi mã băm Hashmap thành chỉ mục bảng nội bộ

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:43:22 25 4
mua khóa gpt4 Nike

HashMap thường được triển khai bằng cách sử dụng một mảng (bảng) nhóm bên trong. Khi truy cập HashMap theo khóa, chúng tôi lấy mã băm của khóa bằng cách sử dụng hàm băm dành riêng cho loại khóa (dành riêng cho loại logic). Sau đó, chúng ta cần ánh xạ mã băm tới chỉ mục bảng nhóm nội bộ thực tế.

 khóa -> (hàm băm) -> mã băm -> (???) -> chỉ mục trong bảng nội bộ

Đôi khi bảng nội bộ có thể thu nhỏ và mở rộng tùy thuộc vào tỷ lệ lấp đầy HashMap. Sau đó, có thể phương thức chuyển đổi hashcode->index có thể được thay đổi một chút.

Ví dụ: hàm băm của chúng tôi trả về giá trị số nguyên không dấu 32 bit và

Thời gian A: Dung lượng bảng bên trong là 10000

Thời điểm B: Dung lượng bảng bên trong là 100000

Thuật toán hoặc cách tiếp cận nào thường được sử dụng để chuyển đổi mã băm-> chỉ mục bảng nội bộ? Họ giải quyết vấn đề thay đổi kích thước bảng như thế nào?

câu trả lời hay nhất

Thông thường, một khuôn đơn giản sẽ thực hiện được công việc.

WikipediaLấy một ví dụ đơn giản từ , nó đơn giản như thế này:

hàm băm = hashfunc(khóa)
chỉ số = hàm băm % mảng_size

Như bạn đã nói, việc thay đổi kích thước phụ thuộc vào tỷ lệ lấp đầy bản đồ băm. Phân bổ lại mảng (xem realloc() ) rồi tính toán lại chỉ mục dựa trên kích thước mảng mới và sao chép giá trị vào chỉ mục mới.

Về việc chuyển đổi thuật toán - Hashmap hashcode sang chỉ mục bảng nội bộ, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/24555783/

25 4 0
Taklimakan
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress