Pagini recente » Cod sursa (job #318919) | Cod sursa (job #42590) | Cod sursa (job #169397) | Cod sursa (job #3155949) | Cod sursa (job #2482578)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500010], n;
/*int pivot(int st, int dr) {
int i = st, j = dr, di = 1, dj = 0;
while(i < j) {
if(v[i] > v[j]) {
int aux = v[i];
v[i] = v[j];
v[j] = aux;
di = 1-di;
dj = 1-dj;
}
i += di;
j -= dj;
}
return i;
}*/
int pivot(int st, int dr) {
int pivot = v[dr];
int i = st-1;
for(int j = st; j < dr; j++)
if(v[j] < pivot) {
i++;
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
int aux = v[i+1];
v[i+1] = v[dr];
v[dr] = aux;
return i+1;
}
void quicksort(int st, int dr) {
if(st < dr) {
int p = pivot(st, dr);
quicksort(st, p-1);
quicksort(p+1, dr);
}
}
void insertionsort() {
for(int i = 1; i < n; i++) {
int p = i;
while(p > 0 && v[p-1] > v[p]) {
int aux = v[p];
v[p] = v[p-1];
v[p-1] = aux;
p--;
}
}
}
int main() {
fin >> n;
for(int i = 0; i < n; i++)
fin >> v[i];
insertionsort();
//quicksort(0, n-1);
for(int i = 0; i < n; i++)
fout << v[i] << ' ';
}