All pastes #59336 Raw Edit

Untitled

public c v1 · immutable
#59336 ·published 2006-05-28 14:36 UTC
rendered paste body
#include <stdio.h>#include <malloc.h>#define n_mas 5int sort(int *x,int n){    int i=0, j=0; int tmp;    for (i=0; i < n-1; i++)      for (j=i+1; j< n; j++)         if (x[j] > x[i])            {                  tmp = x[i];                  x[i] = x[j];                  x[j] = tmp;            }   return 0;}int * merge_sort(int *v, int n1, int *p, int n2){    int k=0;    int *ptr = (int *) malloc((n1+n2) * sizeof(int));    int i=0, j=0;     for (k=0; k < (n1 + n2); k++)      {          if (i >= n1) {ptr[k] = p[j]; j++;}          else if (j >= n2) {ptr[k] = v[i]; i++;}          else          if (v[i] > p[j]) {ptr[k] = v[i]; i++;}                      else {ptr[k] = p[j]; j++;}                }    return ptr; }int copy_mas(int *v, int *p, int s, int k)  {     int i=0;     for (i=0; i < k; i++)        p[i] = v[i+s];     return 0 ;  }int main(){  int m[n_mas]={5,2,1,8,3};  int j = n_mas / 2;  int *ptr1, *ptr2;  ptr1 = (int *) malloc ( j * sizeof(int));  ptr2 = (int *) malloc ( (n_mas - j) * sizeof(int));  int *p;  copy_mas(m,ptr1,0, j); copy_mas(m,ptr2,j,n_mas-1);  sort(ptr1, j); sort(ptr2, n_mas-j);  p = merge_sort(ptr1,j,ptr2,n_mas-j);  int i=0;  for (i=0; i < n_mas; i++)     printf("%d", p[i]);  free(ptr1); free(ptr2);        getchar();  return 0 ;}