CH4_2.C
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. #include <stdio.h>
  2. #define N 9
  3. #define M 8
  4. typedef struct node
  5. {   int i,j,v;
  6. }JD;
  7. int fast_transpos(JD ma[],JD mb[])
  8. {  int n,col,p,k,t;
  9.    int num[M],cpot[M];
  10.    n=ma[0].j;
  11.    t=ma[0].v;
  12.    mb[0].i=n;  mb[0].j=ma[0].i;  mb[0].v=t;
  13.    if(t<=0)
  14.       return(0);
  15.    for(col=0;col<=n;col++)
  16.        num[col]=0;
  17.    for(p=1;p<=t;p++)
  18.    {   k=ma[p].j;
  19.        num[k]++;
  20.    }
  21.    cpot[0]=0; cpot[1]=1;
  22.    for(col=2;col<=n;col++)
  23.       cpot[col]=cpot[col-1]+num[col-1];
  24.    for(p=1;p<=t;p++)
  25.    {  col=ma[p].j;
  26.       k=cpot[col];
  27.       mb[k].i=ma[p].j;
  28.       mb[k].j=ma[p].i;
  29.       mb[k].v=ma[p].v;
  30.       cpot[col]++;
  31.    }
  32.    return(1);
  33. }
  34. void main()
  35. {   JD ma[N]={{6,7,8},{1,2,12},{1,3,9},{3,1,-3},
  36.       {3,6,14},{4,3,24},{5,2,18},{6,1,15},{6,4,-7}};
  37.     JD mb[N];
  38.     int i;
  39.     fast_transpos(ma,mb);
  40.     for(i=0;i<N;i++)
  41.        printf("%d,%d,%dn",mb[i].i,mb[i].j,mb[i].v);
  42. }