Mai intai trebuie sa te autentifici.
Cod sursa(job #1246948)
Utilizator | Data | 21 octombrie 2014 20:42:38 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 1.14 kb |
#include <stdio.h>
void swap(int *first, int *second) {
int temp = *first;
*first = *second;
*second = temp;
}
int a[500010], n;
void Insertion_Sort(int *array, int n) {
int i, j;
int temp = 0;
for (i = 0; i < n; i++) {
j = i + 1;
temp = array[j];
while(temp < array[j-1] && j > 0) {
array[j] = array[j-1];
j--;
}
array[j] = temp;
}
}
void Bucket_Sort(int *array, int n) {
int i = 0;
int k = 0, j;
for (i = 0; i < n; i++) {
for (j = k; j < n; j++) {
if (array[j] / 10 < i) {
swap(&array[k], &array[j]);
k++;
}
}
}
}
int main() {
FILE *input = fopen("algsort.in", "r");
FILE *output = fopen("algsort.out", "w");
// int n;
fscanf(input, "%d", &n);
// int a[n];
int i = 0;
while (i < n) {
fscanf(input, "%d", &a[i++]);
}
Bucket_Sort(a, n);
Insertion_Sort(a, n);
for (i = 0; i < n; i++) {
fprintf(output, "%d ", a[i]);
}
return 0;
}