cody challenge problem30 对复数向量距离原点的距离排列仅用for循环实现 及 代码对比

Problem 30. Sort a list of complex numbers based on far they are from the origin.

仅用for循环实现代码

function zSort = complexSort(z)
c=1;
m=length(z)-1;
n=1;
zSorted=1:length(z);
for i=1:length(z)
  y(i) = sqrt(real(z(i))^2+imag(z(i))^2) ;
end
for c=1:length(z)-1
for j=n:m
    if y(j)<=y(j+1)
        b=y(j);
        y(j)=y(j+1);
        y(j+1)=b;
        b=zSorted(j);
        zSorted(j)=zSorted(j+1);
        zSorted(j+1)=b;
    end
end
m=m-1;
end
for d=1:length(z)
zSort(d)=z(zSorted(d));
end
end

使用内嵌sort函数排列实现

function zSorted = complexSort(z)
    zSorted = sort(z, 'descend');
end

1.仅用for循环实现需要多引入一个角标数列zSorted,并对zSorted数列进行按远近进行排列。

posted @ 2020-09-28 19:59  Aneverforget  阅读(108)  评论(0编辑  收藏  举报