共有回帖数 0 个
-
排序:void pcbub(p,n)
int n;
char p[];
{ int m,k,j,i;
char d;
k=0; m=n-1;
while (km)
{ j=m-1; m=0;
for (i=k; i=j; i++)
if (pp[i+1])
{ d=p; p=p[i+1]; p[i+1]=d; m=i;}
j=k+1; k=0;
for (i=m; i=j; i--)
if (p[i-1]p)
{ d=p; p=p[i-1]; p[i-1]=d; k=i;}
}
return;
}
**************************************************
void pchap(p,n)
int n;
char p[];
{ int i,mm;
char t;
void csift();
mm=n/2;
for (i=mm-1; i=0; i--)
csift(p,i,n-1);
for (i=n-1; i=1; i--)
{ t=p[0]; p[0]=p; p=t;
csift(p,0,i-1);
}
return;
}
static void csift(p,i,n)
int i,n;
char p[];
{ int j;
char t;
t=p; j=2*(i+1)-1;
while (j=n)
{ if ((jn)&&(p[j]p[j+1])) j=j+1;
if (tp[j])
{ p=p[j]; i=j; j=2*(i+1)-1;}
else j=n+1;
}
p=t;
return;
}
void pckey(p,n,k,m)
int n,k,m;
HEAPSORT *p[];
{ int i,l;
HEAPSORT *w;
void pcsift();
if (k0) k=0;
if (mn-1) m=n-1;
l=m-k+1;
for (i=l/2-1; i=0; i--)
pcsift(p,k,i,l);
for (i=l-1; i=1; i--)
{ w=p[k]; p[k]=p[i+k]; p[i+k]=w;
pcsift(p,k,0,i);
}
return;
}
static void pcsift(p,k,i,l)
int i,l,k;
HEAPSORT *p[];
{ int m,n;
char t;
HEAPSORT *w;
t=(*p[i+k]).KEY; w=p[i+k]; n=2*(i+1)-1; m=i;
while (n=l-1)
{ if ((nl-1)&&((*p[n+k]).KEY(*p[n+k+1]).KEY))
n=n+1;
if (t(*p[n+k]).KEY)
{ p[m+k]=p[n+k];
m=n; n=2*(m+1)-1;
}
else n=l;
}
p[m+k]=w;
return;
}
void pcqck(p,n)
int n;
char p[];
{ int m,i0,*i;
char *s;
void csplit();
extern void pcbub();
i=&i0;
if (n10)
{ csplit(p,n,i);
m=i0;
pcqck(p,m);
s=p+(i0+1);
m=n-(i0+1);
pcqck(s,m);
}
else pcbub(p,n);
return;
}
static void csplit(p,n,m)
int n,*m;
char p[];
{ int i,j,k,l;
char t;
i=0; j=n-1;
k=(i+j)/2;
if ((p=p[j])&&(p[j]=p[k])) l=j;
else if ((p=p[k])&&(p[k]=p[j])) l=k;
else l=i;
t=p[l]; p[l]=p;
while (i!=j)
{ while ((ij)&&(p[j]=t)) j=j-1;
if (ij)
{ p=p[j]; i=i+1;
while ((ij)&&(p=t)) i=i+1;
if (ij)
{ p[j]=p; j=j-1;}
}
}
p=t; *m=i;
return;
}
void pcshl(p,n)
int n;
char p[];
{ int k,j,i;
char t;
k=n/2;
while (k0)
{ for (j=k; j=n-1; j++)
{ t=p[j]; i=j-k;
while ((i=0)&&(pt))
{ p[i+k]=p; i=i-k;}
p[i+k]=t;
}
k=k/2;
}
return;
}
插值:
#include "math.h"
double eeatk(x0,h,n,y,t,eps)
int n;
double t,eps,x0,h,y[];
{ int i,j,k,m,l;
double z,xx[10],yy[10];
z=0.0;
if (n1) return(z);
if (n==1) { z=y[0]; return(z);}
m=10;
if (mn) m=n;
if (t=x0) k=1;
else if (t=x0+(n-1)*h) k=n;
else
{ k=1; j=n;
while ((k-j!=1)&&(k-j!=-1))
{ l=(k+j)/2;
if (tx0+(l-1)*h) j=l;
else k=l;
}
if (fabs(t-(x0+(l-1)*h))fabs(t-(x0+(j-1)*h))) k=j;
}
j=1; l=0;
for (i=1;i=m;i++)
{ k=k+j*l;
if ((k1)||(kn))
{ l=l+1; j=-j; k=k+j*l;}
xx[i-1]=x0+(k-1)*h; yy[i-1]=y[k-1];
l=l+1; j=-j;
}
i=0;
do
{ i=i+1; z=yy;
for (j=0;j=i-1;j++)
z=yy[j]+(t-xx[j])*(yy[j]-z)/(xx[j]-xx);
yy=z;
}
while ((i!=m-1)&&(fabs(yy-yy[i-1])eps));
return(z);
}
查找:
int qbkey(p,n,a,b,m)
int n,*m;
BISERCH *p[];
SERCHTYPE a,b;
{ int i,j,k;
i=1; j=n;
while (i=j)
{ k=(i+j)/2;
if (((*p[k-1]).KEY=a)&&((*p[k-1]).KEY=b))
{ i=k-1; j=0;
while ((i=0)&&((*p).KEY=a))
{ i=i-1; j=j+1;}
i=i+1;
while ((k=n-1)&&((*p[k]).KEY=b))
{ k=k+1; j=j+1;}
*m=j; return(i);
}
if ((*p[k-1]).KEYb) j=k-1;
else i=k+1;
}
while ((i=0)&&(b(*p).KEY)) i=i-1;
i=i+1; *m=0;
return(i);
}
产生随机函数:#include "math.h"
double mgrn1(u,g,r)
double u,g,*r;
{ int i,m;
double s,w,v,t;
s=65536.0; w=2053.0; v=13849.0;
t=0.0;
for (i=1; i=12; i++)
{ *r=(*r)*w+v; m=(int)(*r/s);
*r=*r-m*s; t=t+(*r)/s;
}
t=u+g*(t-6.0);
return(t);
}
汉字操作:
#include "dos.h"
#include "stdlib.h"
#include "stdio.h"
void taspl(num,row,col,color,xor,q,n,fp)
FILE *fp;
int num,row,col,color,xor,n;
char q[];
{ int y,code,j;
void chapl();
j=0; y=col;
while (jn)
{ code=q[j];
chapl(num,row,y,code,color,xor,fp);
y=y+8*(num+1); j=j+1;
}
return;
}
楼主 2016-02-19 08:23 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知