Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #define MAX 10000
- #define in "in.txt"
- #define out "out.txt"
- int findmax(int a[], int n)
- {
- int max = a[0];
- for (int i = 1; i < n; ++i)
- {
- if(a[i]>max)
- max = a[i];
- }
- return max;
- }
- void print_array(int a[],int n)
- {
- for ( int i = 0; i < n; i++ )
- printf( "%d ",a[i]);
- printf( "\n");
- }
- void insertionsort(int a[], int n)
- {
- int i,j,key;
- for (int j = 1; j < n; ++j)
- {
- key = a[j];
- i = j -1;
- while(i>=0&&a[i]>key)
- {
- a[i+1] = a[i];
- i = i-1;
- }
- a[i+1] = key;
- }
- }
- void countingsort(int a[],int b[], int k)
- {
- //int c[MAX];
- int *c;
- c = (int*)malloc(MAX);
- for (int i = 0; i < k; ++i)
- {
- c[i] =0;
- }
- for (int i = 0; i < MAX; ++i)
- {
- c[a[i]] = c[a[i]] + 1;
- }
- for (int i = 1; i < k; ++i)
- {
- c[i]= c[i] + c[i-1];
- }
- for (int i = MAX-1; i >= 0; --i)
- {
- b[c[a[i]]-1] = a[i];
- c[a[i]] = c[a[i]] -1;
- //print_array(a,11);
- //print_array(b,11);
- }
- free(c);
- }
- void GhiFileSoNguyen(int n)
- {
- FILE *f;
- f = fopen(in,"wt");
- if(f==NULL)
- {
- printf("Khong tao duoc file\n");
- //getch();
- exit(0);
- }
- for (int i = 0; i < n; ++i)
- {
- fprintf(f, "%d\n", rand()%1000);
- }
- fclose(f);
- }
- void GhiFile(int a[MAX], int n)
- {
- FILE *f;
- f = fopen(out,"wt");
- if(f==NULL)
- {
- printf("Khong tao duoc file\n");
- //getch();
- exit(0);
- }
- for (int i = 0; i < n; ++i)
- {
- fprintf(f, "%d\n", a[i]);
- }
- fprintf(f, "\n" );
- fclose(f);
- }
- void DocFile(int a[MAX], int n)
- {
- FILE *f;
- f = fopen(in,"rt");
- if(f==NULL)
- {
- printf("Khong doc duoc file\n");
- //getch();
- exit(0);
- }
- for (int i = 0; i < n; ++i)
- {
- fscanf(f, "%d", &a[i]);
- }
- fclose(f);
- }
- int main(int argc, char const *argv[])
- {
- int a[MAX];
- int b[MAX];
- GhiFileSoNguyen(MAX);
- DocFile(a,MAX);
- countingsort(a,b,findmax(a,MAX)+1);
- GhiFile(b,MAX);
- /*for(int i=0; i<MAX; i++)
- printf("%d\n",a[i]);*/
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement