Złożoność czasu dla algorytmu

Czy mam poprawne wyjaśnienie przy obliczaniu złożoności czasowej następującego algorytmu?

HashSet, moduleMarksheetFiles, jest używany do dodawania plików zawierających określoną nazwę modułu.

<code>for (File file: marksheetFiles){
     while(csvReader.readRecord()){
         String moduleName = csvReader.get(ModuleName);

         if (moduleName.equals(module)){
               moduleMarksheetFiles.add(file);
         }
     }
 }
</code>

Niech m będzie liczbą plików

Niech k będzie średnią liczbą rekordów na plik.Ponieważ każdy plik jest dodawany tylko raz, ponieważ HashSet nie zezwala na duplikaty. HashSet.add () to średnio O (1) i O (n) dla najgorszego przypadku.Wyszukiwanie rekordu z określoną nazwą modułu polega na porównaniu każdego rekordu w pliku z nazwą modułu, wykona kroki O (n).

Dlatego średnia złożoność czasu byłaby następująca: O ((m * k) ^ 2).

Czy to jest poprawne?

Jak obliczyłbyś najgorszy przypadek?

Dzięki.

PS. To nie jest praca domowa, tylko analiza algorytmu mojego systemu w celu oceny wydajności.

questionAnswers(1)

yourAnswerToTheQuestion