Sort a list of complex numbers based on how far they are from the origin
Given a list
of complex numbers z, return a list zSorted such that the numbers that are
farthest from the origin (0+0i) appear first.
So if z is
z = [-4 6 3+4i 1+i 0]
then the
output zSorted would be
zSorted = [6 3+4i -4 1+i 0]
Algorithm:
Step 1:
Take
absolute part
Step 2:
Sort them in
descending order
Step 3:
Now from
absolute value go back to complex number.
Code:
clc
z=input('Enter the array');
Y=abs(z);
Y=fliplr(sort(Y));
A=[];
for i=1:length(Y)
m=Y(i);
for i=1:length(z)
if(m==abs(z(i)))
A=[A z(i)];
end
end
end
disp(A);
Output:
Explanation:
No comments