l = 2000000;
b = linspace(l,15000000,14);
a = zeros(1,1500000);
fprintf('开始直接插入排序(for) \n\n');
for l = b
tic % 开始计时
length = l;
fprintf('length = %s\n', num2str(length));
for k = 1:length % 步长+1 for循环
a(k) = unidrnd(length); % 随机整数
end
% 开始排序
for i=2:length
temp = a(i);
for j = (i-1):(length)
if temp<a(j)
a(j + 1) = a(j);
continue;
else
break;
end
end
a(j + 1) = temp;
end
toc % 计时完成
% fprintf('排序完成! 用时 = %s\n\n', num2str(toc)) % num2str 数字转为字符
fprintf('\n') % num2str 数字转为字符
end
length = 2000000
历时 3.118420 秒。
length = 3000000
历时 4.602173 秒。
length = 4000000
历时 6.811123 秒。
length = 5000000
历时 8.957308 秒。
length = 6000000
历时 10.302558 秒。
length = 7000000
历时 12.167814 秒。
length = 8000000
历时 12.229252 秒。
length = 9000000
历时 13.872594 秒。
length = 10000000
历时 16.527946 秒。
length = 11000000
历时 17.229361 秒。
输出
fprintf
fprintf('开始直接插入排序(for) \n\n');
format https://ww2.mathworks.cn/help/matlab/ref/format.html?s_tid=doc_ta
https://blog.csdn.net/u013793399/article/details/53454125
文件读写
https://www.ilovematlab.cn/thread-872-1-1.html
|