Для этого назначения алгоритма в классе I необходимо найти все уникальные значения в 2D-массиве 1000x250.Как бы оптимизировать этот поиск для уникального числа Функция алгоритма
Данные находятся между 2000000 и 2200000. Все данные хранятся в массиве 2D int, называемом данными.
Проблема, с которой я сталкиваюсь, заключается в том, что для ее запуска требуется немного времени, и мой профессор сказал, что мы не можем использовать другие наборы данных, а также нам нужно оптимизировать наш код, чтобы он работал на хорошей скорости.
int[] uniqueValues = new int[200000];
boolean isUnique = true;
int uniqueCounter = 0;
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
for (int x = 0; x < uniqueCounter; x++) {
if (data[i][j] != uniqueValues[x]) {
isUnique = true;
} else {
isUnique = false;
break;
}
}
if (isUnique) {
uniqueValues[uniqueCounter] = data[i][j];
uniqueCounter++;
}
}
}
Этот вопрос должен перейти к проверке кода : http://codereview.stackexchange.com/ – Sweeper
* «Мой профессор сказал, что мы не можем использовать другие наборы данных» * - Это не имеет смысла. Наверное, вы его неправильно произвели. Что он на самом деле сказал? –
Вы должны использовать Set. Если вам не разрешено использовать предопределенную реализацию Set, тогда вы должны создать свою собственную структуру данных Set. –