Допустим, у меня есть 2 матрицы,Сортировка 2 колонки, основанные на первом
То, что я хочу сделать, это создать функцию, которая сортирует от низшего к высшему, и соответствующие значения трюме B. Однако мне нужно сделать это, не используя сортировки.
Вот моя идея на данный момент.
function [ out ] = mergesort(a,b)
c = [a;b]
d = mergesort(c,:))
out = [c;b]
Теперь концовка, где у меня есть немного проблем, так как первый массив отсортирован, но второй (очевидно) нет. Кто-нибудь может мне помочь?
EDIT: Вот мой алгоритм сортировки слияния.
function [ out ] = mergesort (a)
n=length(a);
if (n==1)
out=a; return
end
out=merge(mergesort(a(1,1:floor(n/2))),...
mergesort(a(1,floor(n/2)+1:n)));
end
EDIT 2: Вот алгоритм «слияния».
function [ out ] = merge(a,b)
lena = length(a);
lenb = length(b)
out=zeros(1,lena+lenb);
j=1;
k=1;
l=1;
while (j<=lena)&&(k<=lenb))
if (a(1,j)<b(1,k))
out(1,l) = a(1,j); j=j+1; l=l+1;
else
out(1,l) = b(1,k); k=k+1, l=l+1;
end
end
while (j<=lena)
out(1,l) = a(1,j); j=j+1; l=l+1;
end
while (k<=lenb)
out(1,l) = b(1,k); k=k+1;l=l+1;
end
end
Ваш код синтаксически некорректен и что такое 'mergesort'? Вы создали функцию? – Daniel