Ich habe einen rekursiven Algorithmus mit zwei verschachtelten For-Schleifen. Ich versuche herauszufinden, wie groß die Komplexität von Big-O sein wird.Big-O-Zeit Komplexität des rekursiven Algorithmus mit verschachtelten For-Schleifen
public Set<Person> getDistinctCombinedPersons(Collection<Person> persons) {
return permutatePersons(new ArrayList(persons), new HashSet<>(persons));
}
private Set<Person> permutatePersons(List<Person> personList, Set<Person> personSet) {
if(personList.isEmpty() {
return personSet;
}
Set<Person> deepCopyPersonSet = new HashSet<>(personSet);
for(Person lPerson : personList) {
for(Person sPerson : deepCopyPersonSet) {
Person uniquePerson = CombinePeople.combine(lPerson, sPerson);
personSet.add(uniquePerson);
}
}
personList.remove(personList.size()-1);
return permutatePersons(personList, personSet);
}
(By the way, „tiefe Kopie“ bedeutet nicht, was Sie denken, es tut.) – ruakh
@ruakh ja sollte ich gerade gesagt haben Klon – Grammin
@ruakh Was ist Die Big-O-Komplexität meines Algorithmus – Grammin