Pagini recente » Cod sursa (job #1597331) | Cod sursa (job #3208583) | Cod sursa (job #1239879) | Rating Enescu Dinu (dinu2000) | Cod sursa (job #1174872)
# include <algorithm>
# include <cstdio>
# include <vector>
using namespace std ;
const char *FIN = "algsort.in", *FOU = "algsort.out" ;
vector < int > V ;
int N ;
template <class Iter>
Iter SelectPivot(Iter begin) {
return ++begin;
}
template <class Iter, class Cmp>
void QuickSort(Iter begin, Iter end, Cmp less) {
if (distance(begin, end) < 2) return;
Iter left = begin;
Iter right = end;
--right;
Iter pivot = SelectPivot(begin);
auto val = *pivot;
std::swap(*pivot, *right);
Iter pivot_position = left;
for (; left != right; ++left) {
if (less(*left, val)) {
std::swap(*left, *pivot_position++);
}
}
std::swap(*pivot_position, *right);
right = pivot_position;
QuickSort(begin, pivot_position, less);
QuickSort(++right, end, less);
}
template <class It, class Cmp>
inline void Sort(It First, It Last, Cmp FCmp) {
QuickSort(First, Last, FCmp);
}
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
scanf ( "%d", &N ) ;
for ( int i = 0, x; i < N; ++i ) {
scanf ( "%d", &x ) ;
V.push_back ( x ) ;
}
sort(V.begin(), V.end(), [](const int a, const int b) {
return a < b;
});
freopen ( FOU, "w", stdout ) ;
for ( int i = 0; i < N; ++i ) {
printf ( "%d ", V[i] ) ;
}
}