Azzera filtri
Azzera filtri

odd-even transposition Algorithm

2 visualizzazioni (ultimi 30 giorni)
hadi
hadi il 28 Ott 2014
Commentato: hadi il 28 Ott 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 Commento
Adam
Adam il 28 Ott 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.

Accedi per commentare.

Risposte (1)

yonatan gerufi
yonatan gerufi il 28 Ott 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 Commento
hadi
hadi il 28 Ott 2014
thanks
but I do not understand your code yonatan gerufi!

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by