诡异的程序_1【程序的效率问题】

看编程珠玑的课后题看到如下问题:

下面的代码求int array[0, MAX_LEN - 1]中的最大值,这里MAX_LEN设定为30,求30个元素的数组中的最大值,整个程序居然花了7.563秒,这是为什么?

 

#include <stdio.h> #include <stdlib.h> #include<time.h> #define MAX_LEN 30 #define maxv(a, b) ((a) >= (b) ? (a) : (b)) int array[MAX_LEN]; int getmaxv(int n) { if(n == 1) return array[0]; else return maxv(array[n - 1], getmaxv(n - 1)); } int main() { clock_t start,finish; double totaltime; start=clock(); int i; for(i = 0; i < MAX_LEN; i++) array[i] = MAX_LEN - i; printf("%d/n", getmaxv(MAX_LEN)); finish=clock(); totaltime=(double)(finish-start)/CLOCKS_PER_SEC; printf("此程序的运行时间为: %lf 秒!", totaltime); system("PAUSE"); return 0; }  

 

你可能感兴趣的:(编程,System)