栈与时间复杂度

来源:互联网 发布:禁止windows自动更新 编辑:程序博客网 时间:2024/06/07 22:58

1、栈

(1)栈就像一个开口得箱子,先入后出,后入先出。

(2)大小为:1M.

(3)栈顶,地址低;栈底,地址高;

(4)递归时间复杂度太大,容易超出栈得大小

2、计时函数clock

调用计时函数时,先调用头文件

#include<time.h>clock_t c1=clock();//以毫秒计算,数据类型为长整型。printf("%d\n",Fibon(3));//2clock_t c2=clock();printf("%d\n",c2-c1);//求时间差
3、时间复杂度

for(int i=1;i<=n;i++)   for(int j=1;i<=n;j++)
   {
c[i][j]=0;
   }
每条语句为执行一次,总执行次数为:(1+n+n)+[n*(1+n+n)]+(n*n)=3*n^2+3*n+1

(1)只保留阶数最高的项,因为 阶数最高的项对结果影响最大

(2)去掉系数。

所以时间复杂度为o(n^2),其中o(1)为常数。

bool Fun(int n)//功能判断是否为素数,时间复杂度为o(n^0.5){int i=2;while((n%i)!=0 && i*1.0<sqrtl(n))i++;if(i*1.0>sqrtl(n))return true;elsereturn false;}





原创粉丝点击