Я должен хешировать 900 случайных целых чисел в пустую таблицу с размером набора 1009, используя открытую адресацию.Чтобы определить, где число должно идти в таблице, я беру случайное число мод 1009 и затем помещаю число там, если оно открыто.Если нет, я должен проверить следующий ключ после этого и продолжать проверять один за другим, пока не найду открытый ключ для размещения случайного числа.Код, который у меня есть на данный момент, таков:
import java.util.*;
public class openAdd{
public static void main(String[] args) {
//set table length
int[] table = new int[1009];
//insert 900 random integers into the table using open addressing
//random number % table size = the key the number should be placed
//if the key is already taken go to the next key until you find an open one
Random randomGenerator = new Random();
for (int i = 0; i < 900; i++) {
int num = randomGenerator.nextInt(99999);
int key = num % 1009;
if (table[key] == 0) {
table[key] = num;
}
}
}
}
Я думаю, что то, что у меня есть, хорошо, я просто запутался в том, как настроить ключ + 1если уже есть что-то в оригинальном ключе.Спасибо за вашу помощь, и просто дайте мне знать, если мне нужно что-то добавить.