Update OddEven Sort.cpp

This commit is contained in:
Ashwek Swamy 2019-02-10 11:20:09 +05:30 committed by GitHub
parent ef377b0807
commit a73dc04f0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,25 +1,20 @@
/* C++ implementation Odd Even Sort */ /* C++ implementation Odd Even Sort */
#include<iostream> #include <iostream>
#include <vector>
using namespace std; using namespace std;
void switchElmts(int arr[], int i, int j) void oddEven(vector<int> &arr, int size)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
void oddEven(int arr[], int size)
{ {
bool sorted = false; bool sorted = false;
while(!sorted) while( ! sorted )
{ {
sorted = true; sorted = true;
for(int i = 1; i < size-1; i += 2)//Odd for(int i = 1; i < size-1; i += 2)//Odd
{ {
if(arr[i] > arr[i+1]) if(arr[i] > arr[i+1])
{ {
switchElmts(arr,i,i+1); swap(arr[i], arr[i+1]);
sorted = false; sorted = false;
} }
} }
@ -28,36 +23,35 @@ void oddEven(int arr[], int size)
{ {
if(arr[i] > arr[i+1]) if(arr[i] > arr[i+1])
{ {
switchElmts(arr,i,i+1); swap(arr[i], arr[i+1]);
sorted = false; sorted = false;
} }
} }
} }
} }
void show(int A[], int size) void show(vector<int> A, int size)
{ {
int i; int i;
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
cout<<A[i]<<"\n"; cout << A[i] << "\n";
} }
int main() int main()
{ {
int size; int size, temp;
cout<<"\nEnter the number of elements : "; cout << "\nEnter the number of elements : ";
cin >> size;
cin>>size; vector<int> arr;
int arr[size]; cout<<"\nEnter the unsorted elements : \n";
cout<<"\nEnter the unsorted elements : ";
for (int i = 0; i < size; ++i) for (int i = 0; i < size; ++i)
{ {
cout<<"\n"; cin >> temp;
cin>>arr[i]; arr.push_back(temp);
} }
oddEven(arr, size); oddEven(arr, size);