Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <stddef.h>
- void sort (int *A, int a1, int a2){
- if (a1==a2) return;
- int middle;
- middle = (a2 + a1)/2;
- sort (A, a1, middle);
- sort (A, middle+1, a2);
- merge (A, a1, a2, middle);
- }
- void merge (int *A, int a1, int a2, int middle){ //ñëèÿíèå
- int i = a1;
- int j = middle+1;
- int k;
- int *B;
- B = (int*)malloc(a2 * sizeof(int));
- for (k = 0; k < a2-a1+1; k++){
- if (((i <= middle) && (A[i] < A[j])) || (j > a2)){
- B[k] = A[i];
- i++;
- }
- else {
- B[k] = A[j];
- j++;
- }
- }
- for (k = 0; k < a2-a1+1; k++){
- A[a1 + k] = B[k];
- }
- }
- int main (void) {
- int N, i;
- scanf ("%d", &N);
- int A[N];
- float random;
- srand(time(NULL));
- for (i = 0; i < N; i++){
- random = rand();
- random = (random / RAND_MAX)*100;
- A[i] = random;
- // scanf ("%d", &A[i]);
- }
- for (i=0; i<N; i++){
- printf ("%d ", A[i]);
- }
- printf (" \n");
- printf (" \n");
- clock_t start = clock() ;
- sort (A, 0, N-1);
- clock_t end= clock ( ) ;
- float seconds = (float) (end - start) / CLOCKS_PER_SEC;
- for (i = 0; i < N; i++){
- printf ("%d ", A[i]);
- }
- printf (" \n");
- printf ("%f ", seconds);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement