Pagini recente » Cod sursa (job #251035) | Cod sursa (job #2646834) | Cod sursa (job #2050617) | Cod sursa (job #2185678) | Cod sursa (job #1246916)
#include <stdio.h>
#define MAXINT 500001
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 array[n];
int i = 0;
// while (i < n) {
// fscanf(input, "%d", &a[i++]);
// }
for (i = 0; i < n; i++)
fscanf(input, "%d ", &array[i]);
// Bucket_Sort(a, n);
// Insertion_Sort(a, n);
// ******************************************************
// int i, j;
// 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 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;
}
// *************************************************
for (i = 0; i < n; i++) {
fprintf(output, "%d \n", array[i]);
}
return 0;
}