How to sort even and odds elements in an array or vector recursively?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Julia
le 22 Oct 2014
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 commentaires
Julia
le 23 Oct 2014
Modifié(e) : Julia
le 23 Oct 2014
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)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Types dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!