Сравнение быстродействия методов сортировки.
t = zeros(5);
figure, hold on, grid on, xlabel('N'), ylabel('y');
for N= 1000:1000:5000
m=fix(100*rand(1,N));
tstart=tic;
out=viborka_fun (m);
t(1,fix(N/1000))=toc(tstart);
end
for N= 1000:1000:5000
m=fix(100*rand(1,N));
tstart=tic;
out=vstavka_fun (m);
t(2,fix(N/1000))=toc(tstart);
end
for N= 1000:1000:5000
m=fix(100*rand(1,N));
tstart=tic;
out=Puzirjok_fun (m);
t(3,fix(N/1000))=toc(tstart);
end
for N= 1000:1000:5000
m=fix(100*rand(1,N));
tstart=tic;
out=chelnochok_fun (m);
t(4,fix(N/1000))=toc(tstart);
end
for N= 1000:1000:5000
m=fix(100*rand(1,N));
tstart=tic;
sort(m);
t(5,fix(N/1000))=toc(tstart);
end
for k=1:5
switch k
case 1, col='r';
case 2, col='m';
case 3, col='b';
case 4, col='g';
otherwise, col='c';
end
plot (t(k,:), col);
end
axis equal;
legend ('Выборка','Всатвка','Пузырёк ','Челночёк ',' Сортировка')
Упражнение 3.
Разработать функцию, реализующую слияние двух уже отсортированных массивов в один.
function [rezult] = Objedinenije (m1, m2)
n1=length(m1);
n2=length(m2);
rezult=zeros(1,n1+n2);
k1=1; k2=1; kr=1;
while (k1<=n1) && (k2<=n2)
if m1(k1)<=m2(k2)
k1=k1+1;
else
rezult (kr)=m2(k2);
k2=k2+1;
end
kr=kr+1;
end
k1=1; k2=1; kr=1;
while (k2<=n2) && (k1<=n1)
if m2(k2)<m1(k1)
k2=k2+1;
else
rezult (kr)=m1(k1);
k1=k1+1;
end
kr=kr+1;
end
if m2(n2) < m1(n1)
rezult (n1+n2)=m1(n1);
else
rezult (n1+n2)=m2(n2);
end