Из моего учебника у нас есть алгоритм, который проверяет, есть ли дубликат в массиве, как только дубликат в массиве найден, метод заканчивается (это наивный подход).
Меня спрашиваютчтобы найти сложность с большим Ω в худшем случае.
В этом примере наихудший случай будет иметь место, когда искомые дубликаты находятся рядом в конце или в дубликатах нетмассив.
Меня больше смущает время выполнения в каждой строке.
Например, в коде, который я разместил, первый цикл for будет выполняться (n-1) раз, когда мы имеем9 входов.
Сколько раз в n будет работать второй цикл for в худшем случае? В этом случае он будет проверяться 36 раз.
Я знаю, что наихудшим случаем в сложности Big O будет (n ^ 2). Я знаю, что Big O означает, что f (n) должно максимально достигать (<=) g (n). Я знаю, что Big Ω означает, что f (n) должно как минимум достигать (> =) g (n).
public class test2{
public static void main(String[] args){
int[] arrayint = new int[]{5,2,3,7,1,9,6,4,4};
for(int i = 0; i<arrayint.length-1; i++){
for(int j = i+1; j<arrayint.length;j++){
if(arrayint[i] == arrayint[j]){
System.out.println("duplicate found at " + i + " and " + j);
System.exit(0);
}
}
}
}
}