odd-even transposition Algorithm

9 views (last 30 days)
hadi
hadi on 28 Oct 2014
Commented: hadi on 28 Oct 2014
Hi
the following code is about odd-even sort algorithm in C++
void OddEvenSort(T a[], int n)
{
for (int i = 0; i < n; ++i)
{
if (i & 1)
{
for (int j = 2; j < n; j+=2)
if (a[j] < a[j-1])
swap(a[j-1], a[j]);
}
else
{
for (int j = 1; j < n; j+=2)
if (a[j] < a[j-1])
swap(a[j-1], a[j]);
}
}
how to convert this code in MATLAB? ??
  1 Comment
Adam
Adam on 28 Oct 2014
Just program it in a function. Apart from 'swap' which you will have to program a trivial equivalent of yourself it doesn't seem to present any challenges. If you are completely new to Matlab then you need to start with the Matlab help basics and tutorials.

Sign in to comment.

Answers (1)

yonatan gerufi
yonatan gerufi on 28 Oct 2014
if your array is called "arr", simple code that will do the work is:
odd =mod(arr,2);
odd_arr = arr.*odd;
odd_arr(odd_arr==0) = [];
even = ~odd;
even_arr = arr.*even;
even_arr(even_arr==0) = [];
final_arr = [even_arr, odd_arr];
  1 Comment
hadi
hadi on 28 Oct 2014
thanks
but I do not understand your code yonatan gerufi!

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!