我使用MATLAB进行了Merge排序。
我试图禁止 - 元素##经过时间。
但是图表就像y = x。请帮帮我TT
我的代码如下
function result = Merge_sort2(input, p, r)
global A;
A = input;
if p < r
q = floor((p+r)/2);
Merge_sort2(A, p, q);
Merge_sort2(A, q+1, r);
Merge2(p, q, r);
end
result = A;
end
function Merge2(p, q, r)
global A;
n1 = q - p + 1;
n2 = r - q;
L = [];
R = [];
for i = 1 : n1
L(i) = A(p+i-1);
end
for j = 1 : n2
R(j) = A(q+j);
end
L(n1+1) = inf;
R(n2+1) = inf;
i = 1;
j = 1;
for k = p : r
if L(i) <= R(j)
A(k) = L(i);
i = i + 1;
else
A(k) = R(j);
j = j + 1;
end
end
end
下一个代码是查找运行时代码。
function Running_time2(func, incr, num)
y = [];
max = incr * num;
for i = incr : incr : max
data = i:-1:1;
len = length(data);
a = tic;
res = func(data, 1, len);
elapsed = toc(a);
y = [y elapsed];
fprintf('[The number of elements: %d]\t', i);
fprintf('[Elapsed time: %fs]\n', elapsed);
end
x = incr : incr: max;
bar(x, y);
end
我在MATLAB的命令窗口输入。
Running_time2(@Merge_sort2, 10, 300)