作者声称以下代码为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());