这段代码的时间复杂度(摘自“破解编码面谈”组Anagrams”)

时间:2018-12-28 03:03:45

标签: big-o

作者声称以下代码为O(n * log(n))。这似乎暗示比较器正在执行恒定时间的工作,但是比较器的compare()函数中嵌入了某种排序。这不会增加时间复杂度吗?

class AnagramComparator implements Comparator<String> {
  public String sortChars(String s) {
    char[] content = s.toCharArray();
    Array.sort(content);
    return new String(content);
  }

  public int compare(String s1, String s2) {
    return sortChars(s1).compareTo(sortChars(s2));
  }
}

Arrays.sort(array, new AnagramComparator());

0 个答案:

没有答案