我曾尝试优化此代码,但现在无法对其进行优化。
请帮助建立该算法的流程图。
A = [-1,0,1,2,3,5,6,8,10,13,19,23,45];
B = [0,1,3,6,7,8,9,12,45];
N1 = length(A);
N2 = length(B);
t = 1;
m = 10;
C = [];
for i=1:N1
for j=1:N2
if A(i)==B(j)
break
else
if j==N2
C(t)=A(i);
t=t+1;
end
end
end
end
disp(C);
N3=length(C);
R = [];
y = 1;
for l=1:N3
if C(l)>m
R(y)=C(l);
y=y+1;
end
end
disp(R);
如何找到算法的时间复杂度
我认为应该是O(n)。
主要(基本)操作:比较A(i)== B(j)但我不确定。
而且我做不到
复杂度函数(最坏的情况)
和
最差的计算复杂度:𝐹(𝑁)
这似乎可能是作业; p
关于时间复杂度,由于在另一个for循环中有一个for循环,因此看起来更像是O(n²)
。我最近开始观看我强烈推荐的有关Udemy的算法和数据结构的课程。他很好地解释了BigO符号:)Link到课程。 (无隶属关系)