function [x] = viborka_fun (x)
n=length(x);
for I = 1: (n-1)
min_x = x(I); index = I;
for J = (I+1): n % перебираются все элементы от I+1 до n
if x(J) < min_x
min_x = x(J); % текущим минимальным
index = J; % фиксируется его номер
end
end
buff = x(I); % текущий элемент и минимальный
x(I) = x(index); % меняются местами
x(index) = buff;
end
end
function [x] = Puzirjok_fun (x)
n=length(x)
J = n - 1; % устанавливается начальное значение
% правой "границы" сортировки
while J ~= 0 % пока эта граница не совпала с началом массива
for I = 1: J % перебираются все элементы с 1-го
% до "границы" сортировки
if x(I) > x(I+1) % если условие упорядочения массива
% не выполнено, то два соседних
buff = x(I); % меняются местами
x(I) = x(I+1);
x(I+1) = buff;
end;
end;
J = J - 1; % "граница" сортировки сдвигается влево
end;
end
function [x] = chelnochok_fun (x)
n=length(x)
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;
end
function [m] = vstavka_fun (m)
n=length(m);
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
end