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数列进行按远近进行排列。