Zeitliche Komplexität für einen Algorithmus

Bin ich in meiner Erklärung richtig, wenn ich die zeitliche Komplexität des folgenden Algorithmus berechne?

Ein HashSet, moduleMarksheetFiles, wird verwendet, um die Dateien hinzuzufügen, die den angegebenen Modulnamen enthalten.

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

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

Sei m die Anzahl der Dateien

Sei k die durchschnittliche Anzahl von Datensätzen pro Datei.Da jede Datei nur einmal hinzugefügt wird, weil HashSet keine Duplikate zulässt. HashSet.add () ist im Durchschnitt O (1) und O (n) für den ungünstigsten Fall.Wenn Sie nach einem Datensatz mit dem angegebenen Modulnamen suchen, müssen Sie jeden Datensatz in der Datei mit dem Modulnamen vergleichen. In diesem Fall führen Sie O (n) Schritte aus.

Daher wäre die durchschnittliche Zeitkomplexität: O ((m * k) ^ 2).

Ist das richtig?

Wie würden Sie den schlimmsten Fall berechnen?

Vielen Dank.

PS. Es ist keine Hausaufgabe, nur die Analyse des Algorithmus meines Systems, um die Leistung zu bewerten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage