以下algorithm的时间复杂度是多少?
我知道不检查重复项的排列需要O(n!)
,但是我对shoudSwap
函数特别感兴趣,如下所示:
// Returns true if str[curr] does not match with any of the
// characters after str[start]
bool shouldSwap(char str[], int start, int curr)
{
for (int i = start; i < curr; i++)
if (str[i] == str[curr])
return 0;
return 1;
}
答案 0 :(得分:1)
如果n是char数组specialization | Claims_Totals | PERCENTAGE
___________________________________________
cardiologist 25 25%
oncologist 15 15%
general surgeon 10 10%
的大小,则shouldSwap()的时间复杂度为str[]
,因为它将对O(n)
数组中的每个元素最多迭代一次