![](https://img2018.cnblogs.com/blog/1623797/201903/1623797-20190317222409209-1994269123.png)
![](https://img2018.cnblogs.com/blog/1623797/201903/1623797-20190317222445095-510336620.png)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
clock_t start,stop;
double duration;
#define MAXN 10
#define MAXK 1000000
double f1(int n, double a[], double x);
double f2(int n, double a[], double x);
void func();
void func()
{
duration = ((double)(stop-start))/CLK_TCK/MAXK;
//CLK_TCK : 表示机器始终每秒所走的时钟打点数
printf("ticks = %f
",(double)(stop - start));
printf("duration = %6.2e
",duration);
}
double f1(int n, double a[], double x)
{
int i;
double p = a[0];
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 > 0; i-- )
{
p = a[ i - 1 ] + x * p;
}
return p;
}
int main()
{
int i;
double a[MAXN];
for ( i = 0; i < MAXN; i++ )
{
a[i] = (double)i;
}
start = clock();
for( i = 0; i < MAXK; i++ )
{
f1(MAXN-1, a, 1.1);
}
stop = clock();
printf("This is ticks1
");
func();
start = clock(); //捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick即“时钟打点”
for( i = 0; i < MAXK; i++ )
{
f2(MAXN-1, a, 1.1);
}
stop = clock();
printf("This is ticks2
");
func();
return 0;
}
什么是算法?
- 算法(Algorithm)
- 一个有限指令集
- 接受一些输入(有时不需要输入)
- 产生输出
- 一定在有限步骤之后终止
- 每条指令必须
- 有充分明确的目标,不可有歧义
- 计算机能处理的范围之内
- 描述应不依赖与任何一种计算机语言以及具体的实现手段
求最大子列和
![](https://img2018.cnblogs.com/blog/1623797/201903/1623797-20190317225043796-788197771.png)