Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <malloc.h>
- void merge(int *A,int *L,int dl,int *R,int dr)
- {
- int i=0,j=0,k=0;
- while(i<dl&&j<dr)
- {
- if(L[i]<R[j]) A[k++]=L[i++];
- else A[k++]=R[j++];
- }
- while(i<dl)
- A[k++]=L[i++];
- while(j<dr)
- A[k++]=R[j++];
- }
- void sort(int *a, int n) {
- if(n<2) return;
- int mid;
- mid=n/2;
- int *L=malloc(sizeof(int)*mid);
- int *R=malloc(sizeof(int)*(n-mid));
- int i;
- for(i=0;i<mid;i++) *(L+i)=a[i];
- for(i=mid;i<n;i++) R[i-mid]=a[i];
- sort(L,mid);
- sort(R,n-mid);
- merge(a,L,mid,R,n-mid);
- free(L);
- free(R);
- }
- int main() {
- int n, i;
- scanf("%d", &n);
- int *a = malloc(sizeof(int) * n);
- srand(time(NULL));
- for(i = 0; i < n; ++i) {
- a[i] = rand() % 10000;
- }
- sort(a, n);
- int sorted = 1;
- for(i = 0; i < n - 1; ++i) {
- if(a[i] > a[i + 1]) {
- sorted = 0;
- break;
- }
- }
- if(!sorted) {
- printf("NOT SORTED");
- } else {
- printf("SORTED");
- }
- free(a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement