我试图找到以下函数的时间复杂度:
for (int i = 0; i < arraySize; i++) {
for (int j = 0; j < arraySize; j++) {
if (array[j] < array[i]) {
//Do something
}
else if (array[j] == array[i]) {
//Do something else
}
}
}
我认为它是O(n ^ 2),但我不确定如何证明它。
答案 0 :(得分:2)
你是对的。它是O(n ^ 2)。
经验法则:可以通过计算程序的嵌套循环来分析简单程序。 n个项目上的单个循环产生f(n)= n。循环内的循环产生f(n)= n ^ 2。循环内循环内的循环产生f(n)= n ^ 3.
您还可以使用以下链接查看
How to find time complexity of an algorithm
希望这有帮助!