Implementation of the OddEven sorting algorithm

This commit is contained in:
PARISOT paul andrea 2018-04-16 17:13:01 +02:00
parent d3185357bd
commit facd742c19
2 changed files with 136 additions and 0 deletions

68
Sorting/OddEven Sort.cpp Normal file
View File

@ -0,0 +1,68 @@
/* C++ implementation Odd Even Sort */
#include<iostream>
using namespace std;
void switchElmts(int arr[], int i, int j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
void oddEven(int arr[], int size)
{
bool sorted = false;
while(!sorted)
{
sorted = true;
for(int i = 1; i < size-1; i += 2)//Odd
{
if(arr[i] > arr[i+1])
{
switchElmts(arr,i,i+1);
sorted = false;
}
}
for(int i = 0; i < size-1; i += 2)//Even
{
if(arr[i] > arr[i+1])
{
switchElmts(arr,i,i+1);
sorted = false;
}
}
}
}
void show(int A[], int size)
{
int i;
for (i = 0; i < size; i++)
cout<<A[i]<<"\n";
}
int main()
{
int size;
cout<<"\nEnter the number of elements : ";
cin>>size;
int arr[size];
cout<<"\nEnter the unsorted elements : ";
for (int i = 0; i < size; ++i)
{
cout<<"\n";
cin>>arr[i];
}
oddEven(arr, size);
cout<<"Sorted array\n";
show(arr, size);
return 0;
}

68
Sorting/OddEven_Sort.cpp Normal file
View File

@ -0,0 +1,68 @@
/* C++ implementation Odd Even Sort */
#include<iostream>
using namespace std;
void switchElmts(int arr[], int i, int j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
void oddEven(int arr[], int size)
{
bool sorted = false;
while(!sorted)
{
sorted = true;
for(int i = 1; i < size-1; i += 2)//Odd
{
if(arr[i] > arr[i+1])
{
switchElmts(arr,i,i+1);
sorted = false;
}
}
for(int i = 0; i < size-1; i += 2)//Even
{
if(arr[i] > arr[i+1])
{
switchElmts(arr,i,i+1);
sorted = false;
}
}
}
}
void show(int A[], int size)
{
int i;
for (i = 0; i < size; i++)
cout<<A[i]<<"\n";
}
int main()
{
int size;
cout<<"\nEnter the number of elements : ";
cin>>size;
int arr[size];
cout<<"\nEnter the unsorted elements : ";
for (int i = 0; i < size; ++i)
{
cout<<"\n";
cin>>arr[i];
}
oddEven(arr, size);
cout<<"Sorted array\n";
show(arr, size);
return 0;
}