前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[C语言] 数据结构-算法效率的度量方法-事前分析估算方法

[C语言] 数据结构-算法效率的度量方法-事前分析估算方法

作者头像
唯一Chat
发布2019-09-10 12:54:49
4400
发布2019-09-10 12:54:49
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算,抛开与计算机硬件软件有关的因素,一个程序的运行时间,依赖于算法的,好坏和问题的输入规模,所谓问题输入规模是指输入量的多少

推导过程,比如计算1+2+3+...100:

int i,sum=0,n=100 //执行1次

for(i=1;i<=n;i++) //执行n+1次

{

sum=sum+i; //执行n次

}

去掉头尾循环判断,执行了n次

第二种算法:

int sum=0,n=100 //执行1次

sum=(1+n)*n/2; //执行1次

去掉头尾循环判断,执行了1次

延伸一下:

int i,x,j,sum=0,n=100 //执行1次

for(i=1;i<=n;i++) //执行n+1次

{

for(j=1;i<=n;j++){

x++;

sum=sum+x; //执行n*n次

}

}

循环部分的代码整体需要执行n^2次

因此当问题输入规模是n时,f(n)作为一个函数操作数量分别为

f(n)=n

f(n)=1

f(n)=n^2

由于函数的渐进增长,n的值越大,差异也就越大,因此我们在判断一个算法时

一般都忽略掉常数项,忽略掉次要项,只关注最高次项,关注最高阶项的阶数

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档