问题描述
有两个数组 A 和 B 。并且 A 数组 = B 数组,现将 B 数组中的其中一个值随机去掉,求被去掉的值。
解决方案
1 |
|
算法时间复杂度
信息标记
1 | for($i=0; $i<count($arr1); $i++){//{1} |
计算过程
第一步:计算算法运行过程中运行的代码总的条数N:
1 | N = n*n + n + n +1 |
n 代表{1}循环n次
{3} 过程中每条执行1次,所以得到 n*n
{2} 过程中 $flag = false 被赋值 n次,所以 +n
{6} 过程中 if(!$flag) 判断了 n 次,所以 +n
{7} 最后输出,所以 +1
第二步:计算算法总运行时间f(n):
1 | f(n) = N * t = (n^2 + 2n +1) * t |
第三步:计算时间复杂度T(n):
1 | T(n) = O( f(n) ) = O( (n^2 + 2n +1) * t ) |
第四步:简化
1 | T(n) = O(n^2) |