Pagini recente » Cod sursa (job #2978651) | Cod sursa (job #1251629) | Cod sursa (job #2638115) | Cod sursa (job #2326199) | Cod sursa (job #978549)
Cod sursa(job #978549)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void CombSort( vector<int>& a )
{
const float shrink = 1.3333333f;
const int N = a.size();
int gap = N;
bool swapped = false;
while( ( gap > 1 ) || swapped )
{
if ( gap > 1 )
gap = (float)( gap / shrink );
swapped = false;
for ( int i = 0; gap + i < N; ++i )
if ( a[i] - a[i + gap] > 0 )
{
swap( a[i], a[i + gap] );
swapped = true;
}
}
}
void read( vector<int>& a );
void write( vector<int> a );
int main()
{
vector<int> a;
read(a);
CombSort(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();
}