Pagini recente » Cod sursa (job #3237883) | Cod sursa (job #1353288) | Cod sursa (job #2522450) | Cod sursa (job #2449614) | Cod sursa (job #1362648)
#include <fstream>
using namespace std;
int main() {
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
in >> n;
int *v = new int[n];
for (int i = 0; i < n; ++i) {
in >> v[i];
}
int k = n / 2;
while (k >= 1) {
for (int i = 0; i < k; ++i) {
bool did_something = false;
do {
did_something = false;
for (int j = 0; i + j * k < n; ++j) {
if (i + (j + 1) * k < n) {
if (v[i + j * k] > v[i + (j + 1) * k]) {
swap(v[i + j * k], v[i + (j + 1) * k]);
did_something = true;
}
}
}
} while(did_something);
}
k = k / 2;
}
for (int i = 0; i < n; ++i) {
out << v[i] << " ";
}
out << "\n";
in.close();
out.close();
return 0;
}