浙大数据结构C语言版本
- 使用C语言中的clock()函数来比较程序的运行速度
多项式求和
∑i=0nai∗xi ∑ i = 0 n a i ∗ x i
普通的多项式求和算法和秦九章算法程序比较
//由于函数执行一次的速度非常快,这里可以重复执行多次函数达到时间雷击的效果。
double coff[]={1,4,5,8,10,12,14,15,19,10,28,10,18,1882,747,2838};
double x=4;
start=clock();
//;多次重复执行该函数
int j;
for(j=0;j<MAXK;j++){
f(16,coff,x);
}
end=clock();
duration1=((double)(start-end))/CLK_TCK;
printf("total ticks are %f\n",(double)(end-start));
printf("duration1=%f\n",duration1);
start=clock();
for(j=0;j<MAXK;j++){
f2(16,coff,x);
}
end=clock();
duration2=((double)(start-end))/CLK_TCK;
printf("total ticks are %f\n",(double)(end-start));
printf("duration2=%f\n",duration2);
double f(int n,double a[],double x){
double p=a[0];
int i;
for(i=1;i<n;i++){
p+=a[i]*pow(x,i);
}
return p;
}
double f2(int n,double a[],double x){
int i;
double p=a[n];
for(i=n;i>=1;i--){
p=a[i-1]+p*x;
}
return p;
}
秦九章算法显然比直接求解要快一个数量级!!!!
在数据结构中逻辑结构可以分为一对一的线性结构,一对多的树形表示法还有多对多的图的数据结构,而这些数据结构在计算机中又可以以不同的方式进行存储。
ADT Abstract Data Type 抽象数据类型
数据类型
数据对象集和数据操作集合
抽象
描述数据类型的方法不依赖于具体实现
与存放数据的机器无关
与数据存储的物理结构无关
与实现操作的算法和编程语言均无关
只描述数据对象集和相关的操作集是什么并不涉及如何做到的问题