Я бы хотел подтвердить следующее предположение.Временная сложность, следующая за вложенными для циклов, идентична:
List<Integer> smallList = List.of(1, 2, 3, 4, 5);
List<Integer> bigList = IntStream.range(1, 1_000_000).boxed().collect(Collectors.toList());
for (int i : smallList) {
for (int j : bigList) {
doSomething(i, j);
}
}
for (int j : bigList) {
for (int i : smallList) {
doSomething(i, j);
}
}
Я предполагаю, что временная сложность идентична, потому что 5 x 1_000_000 вызовов doSomething совпадают с 1_000_000 x 5 вызовов doSomething.Это правильно?Если да, верно ли это, если речь идет о потоках?
smallList.stream().forEach(i -> bigList.stream().forEach(j -> doSomething(i,j)));
bigList.stream().forEach(j -> smallList.stream().forEach(i -> doSomething(i,j)));
Одинакова ли временная сложность обоих приведенных выше операторов?