Функции

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


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



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