Pagini recente » Cod sursa (job #1158951) | Cod sursa (job #2948406) | Cod sursa (job #3133183) | Cod sursa (job #451169) | Cod sursa (job #2438942)
#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");
int 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;
}