Упражнение 2. Сравнение быстродействия методов сортировки

Сравнение быстродействия методов сортировки.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: