找出算法的复杂性,该算法测量算法中打印语句的数量,该算法考虑正整数n并打印1次,2次,3次,3次和n次n次。 那是 1 2 2 3 3 3 ............... ............... n n n ...... ...... n(n次)
答案 0 :(得分:1)
假设问题在于找到算法的算法复杂度,当给定数字 n 时,将打印从1到 n 的每个数字,打印1次,2次两次,三次,等等......
您的算法复杂度的上限为O( n ²)。
这是因为 n 有 n 打印。实际上,如果你想要波形近似,它应该是~O(( n ²+ n )/ 2)因为你平均了序列。
对于 n = 5,您打印1 + 2 + 3 + 4 + 5次...即15。
对于 n = 6,您打印1 + 2 + 3 + 4 + 5 + 6次...即21。
对于 n = 10,你打印1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10次......这是55次。
由于实际的算法复杂度确实是O(( n ²+ n)/ 2),因此复杂度的最大数量级是 n ²。您最好将算法复杂度近似为O( n ²),因为 n ²会在输入大小足够大的情况下快速超出 n