Pagini recente » Cod sursa (job #2119599) | Cod sursa (job #725185) | Cod sursa (job #1090981) | Cod sursa (job #2573805) | Cod sursa (job #978534)
Cod sursa(job #978534)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void CocktailSort( vector<int>& a )
{
const int N = a.size();
bool notSorted = true;
while( notSorted )
{
notSorted = false;
for ( int i = 0; i < N - 1; ++i )
{
if ( a[i] > a[i + 1] )
swap( a[i], a[i + 1] ),
notSorted = true;
}
if ( !notSorted ) break;
notSorted = false;
for ( int i = N - 1; i > 0; i-- )
{
if ( a[i - 1] > a[i] )
swap( a[i - 1], a[i] ),
notSorted = true;
}
}
}
void read( vector<int>& a );
void write( vector<int> a );
int main()
{
vector<int> a;
read(a);
CocktailSort(a);
write(a);
return 0;
}
void read( vector<int>& a )
{
ifstream f("algsort.in");
int n;
f >> n;
for ( int i = 1, x; i <= n; i++ )
{
f >> x;
a.push_back( x );
}
f.close();
}
void write( vector<int> a )
{
ofstream g("algsort.out");
for ( int i = 0; i < a.size(); i++ )
g << a[i] << " ";
g << "\n";
g.close();
}