Pagini recente » Cod sursa (job #1813187) | Cod sursa (job #2118267) | Cod sursa (job #759102) | Cod sursa (job #748683) | Cod sursa (job #1246905)
#include <stdio.h>
void swap(int *first, int *second) {
int temp = *first;
*first = *second;
*second = temp;
}
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++;
}
}
}
Insertion_Sort(array, n);
}
int main() {
FILE *input = fopen("Bucket_Sort.in", "r");
FILE *output = fopen("Bucket_Sort.out", "w");
int n;
fscanf(input, "%d", &n);
int a[n];
int i = 0;
// while (i < n) {
// fscanf(input, "%d", &a[i++]);
// }
for (i = 0; i < n; i++)
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;
}