Pagini recente » Cod sursa (job #1053226) | Cod sursa (job #1595026) | Cod sursa (job #897481) | Cod sursa (job #1930980) | Cod sursa (job #1508732)
#include <iostream>
#include <fstream>
#include <vector>
#include <ctime>
using namespace std;
void quicksort(vector<int> &v, int l, int r) {
if (l >= r) {
return;
}
int p = v[l + rand() % (r - l + 1)];
int i = l, j = r;
do {
while (v[i] < p) {
++i;
}
while (v[j] > p) {
--j;
}
if (i <= j) {
swap(v[i], v[j]);
++i;
--j;
}
} while (i < j);
quicksort(v, i, r);
quicksort(v, l, j);
}
void bubblesort(vector<int> &v, int l, int r) {
int swapped;
do {
swapped = 0;
for (int i = l; i <= r - 1; ++i) {
if (v[i] > v[i + 1]) {
swap(v[i], v[i + 1]);
swapped = 1;
}
}
} while (swapped);
}
void insertionsort(vector<int> &v, int l, int r) {
for (int i = 1; i < v.size(); ++i) {
int j = i;
int x = v[i];
while (j >= 1 && v[j - 1] > x) {
v[j] = v[j - 1];
--j;
}
v[j] = x;
}
}
int main()
{
#ifdef LOCAL
freopen("input", "r", stdin);
#else
ifstream cin("algsort.in");
ofstream cout("algsort.out");
#endif // LOCAL
int n;
vector<int> v;
cin >> n;
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
v.push_back(x);
}
srand(time(0));
insertionsort(v, 0, n - 1);
for (int i = 0; i < n; ++i) {
cout << v[i] << ' ';
}
return 0;
}