How to sort even and odds elements in an array or vector recursively?
18 次查看(过去 30 天)
显示 更早的评论
Hi,
I am trying to sort an array of 1xN in different odd and even arrays till the length last array =4 for example: X=1:32; N=length(X) m=log2(N);
for i=1:m
A=X(1,1:2:end); %for odd bits B=X(1,2:2:end); %for even bits X=A;
if l=4 break end
a=B(1,1:2:end); %for odd bits b=B(1,2:2:end); %for even bits B=a; end
i m getting output for X=1:16 but if I increase length of X to N then its is not working; for X=1:32, I am getting only odd values
i want the o/p as [1 9 17 25 5 13 21 29 3 11 19 27 7 15 23 31 2 10 18 26 6 14 22 30 4 12 20 28 8 16 24 32]
In my code it is considering odd bits only. I want to do this for N bit but my loop is not working in that case. Please help me out
Thanks in advance
0 个评论
采纳的回答
Julia
2014-10-22
Hi,
I don't really get your intention. What are A, B, a and b for?
And where do you compute l for the if-statement?
It would be helpful if you edited your code.
2 个评论
Julia
2014-10-23
编辑:Julia
2014-10-23
I think I know what the problem is.
For
X = 1:16
You compute A ans B twice but a and b only once, so you keep your even values in a and b.
But for
X = 1:32
you compute A, B, a and b twice. The second time you compute a and b you use B, which now contains only odd values --> a and b now contain only odd values.
B=a
is overwritten in the next loop iteration by
B=X(1,2:2:end)
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!