Pagini recente » Clasament | Istoria paginii utilizator/kopac13 | Cod sursa (job #2078157) | Cod sursa (job #2334814) | Cod sursa (job #2438940)
#include <iostream>
#include <fstream>
using namespace std;
#define maxi (1 >> 31)
inline void swap(int *a, int *b) {
int *temp = move(a);
a = move(b);
b = move(temp);
}
int partition(int vec[], int low, int high){
int i = low - 1;
int pivot = vec[high];
for(int j = low; j <=high -1; j++){
if(vec[j] <= pivot){
i++;
swap(&vec[i], &vec[j]);
}
}
swap(&vec[high], &vec[i+1]);
return (i+1);
}
void quick(int vec[], int low, int high){
if(low < high){
int pi = partition(vec, low, high);
quick(vec, low, pi-1);
quick(vec, pi+1, high);
}
}
int main(){
ifstream fin("algsort.in");
ofstream fout("algsort.out");
long long n, vec[500000];
fin >> n;
for(int i = 0; i < n; i++){
fin >> vec[i];
}
quick(vec, 0, n-1);
for(int i = 0; i < n; i++){
fout << vec[i] <<" ";
}
return 0;
}