Сортировка методом «челночка»

Как и сортировка методом «пузырька», челночная сортировка основана на перестановке двух соседних элементов в случае, если значение преды-дущего элемента больше, чем значение последующего (рассматриваем сор-тировку в неубывающем порядке). Но при челночной сортировке после та-кой перестановки происходит откат назад, к началу массива (при этом также, если выполнено условие сортировки, производится перестановка элементов).

clear all;

T = [];

for n = [ 1000: 1000: 5000 ];

time = round(clock);

rand('seed', time(5)*time(6));

x = rand(1, n);

x = round(100*x);

t_start = clock;

for I = 1: (n-1); % перебираются все элементы от первого

% до предпоследнего

if x(I) > x(I+1) % если условие упорядочения массива

% не выполнено

for J = I: -1: 1 % откат назад от текущего элемента до первого

if x(J) > x(J+1) % и при необходимости перестановка

buff = x(J);

x(J) = x(J+1);

x(J+1) = buff;

end;

end;

end;

end;

t_stop = clock;

t = t_stop(6) - t_start(6);

T = [ T t ];

end;

plot(T), grid on

Сортировка методом «Вставки»

Метод вставки основывается на нахождении минимального элемента и перестановки его на левую границу сдвигая все остальные элементы на одну позицию вправо.

T = [];

for n = [ 1000: 1000: 5000 ];

time = round(clock);

rand('seed', time(5)*time(6));

m = rand(1, n);

m = round(1000*m);

t_start = clock;

for k=1:n-1

vm=m(k);

im=k;

for p=k+1:n

if m(p)<vm

im=p;

vm=m(p);

end

end

if im>k

m(k+1:im)=m(k:im-1);

m(k)=vm;

end

end

t_stop = clock;

t = t_stop(6) - t_start(6);

T = [ T t ];

end;

plot(T), grid on


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



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