Я изо всех сил пытаюсь выяснить, верна ли моя линейная техника зондирования и эффективна ли она вообще.Могу ли я сделать его более эффективным?
static void enterValues(int values[], int hashTable[])
{
for(int i = 0; i < values.length; i++){
int k = hashFunction(values[i]);
if(hashTable[k]== 0)
hashTable[k] = values[i];
else{
boolean b = false;
int counter = k%hashTable.length+1;
if(counter >= hashTable.length)
counter = 0;
while (!b) {
if (hashTable[counter] == 0) {
hashTable[counter] = values[i];
b = true;
} else {
counter = counter % hashTable.length+1;
}
}
}
}
}
static int hashFunction(int value)
{
return value % 10;
}
int values[] = {4371,1323,6173,4199,4344,9679,1989};
Выход для хэш-набора размером 10:
9679,
4371,
1989,
1323,
6173,
4344,
0,
0,
0,
4199
Спасибо, что посмотрели