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