Cod sursa(job #1246916)

Utilizator Li4ickLi4ick Li4ick Data 21 octombrie 2014 19:57:34
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 1.96 kb
#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;
}