散列函数计算

时间:2017-07-20 16:59:26

标签: java c++ algorithm hash

我需要一个哈希函数,将值0-9映射到0,10-19到1,20-29到2,30-39到3,-1到-9到-1,-10到 - 19到-2等

int hash (int value) {
    return (int)(value / 10);
}

适用于正数,但0到-9映射到0而负数则错误。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:7)

嗯,这不是那么难,是吗。

int val = value / 10;
if(value < 0)
    val--;
return val;