[C语言] 数据结构-算法效率的度量方法-事前分析估算方法详解编程语言
2023-06-13 09:20:37 时间
事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算,抛开与计算机硬件软件有关的因素,一个程序的运行时间,依赖于算法的,好坏和问题的输入规模,所谓问题输入规模是指输入量的多少
推导过程,比如计算1+2+3+ 100:
int i,sum=0,n=100 //执行1次
for(i=1;i 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 i++) //执行n+1次
{
for(j=1;i j++){
x++;
sum=sum+x; //执行n*n次
}
}
循环部分的代码整体需要执行n^2次
因此当问题输入规模是n时,f(n)作为一个函数操作数量分别为
f(n)=n
f(n)=1
f(n)=n^2
由于函数的渐进增长,n的值越大,差异也就越大,因此我们在判断一个算法时
一般都忽略掉常数项,忽略掉次要项,只关注最高次项,关注最高阶项的阶数
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12498.html
c相关文章
- C语言数组 一维数组篇
- 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc
- C语言素数优化方法
- C语言之算数运算符详解编程语言
- 多级指针(二级指针),C语言多级指针的用法详解
- C语言线程和进程
- Linux C语言程序设计入门(linuxc程序设计基础)
- 学习使用C语言封装Redis类(credis封装类)
- MySQL上利用C语言编写的数据库操作方法(c 关于mysql的方法)
- C语言调用Oracle数据库操作方法(c 调用oracle方法)
- C语言调用Oracle序列的实现方法(c 调用oracle序列)
- 使用C语言获取Oracle序列的实现方法(c 获取oracle序列)
- MySQL57与C语言的连接之路(c mysql5.7)
- C语言数与串之间转换的方法
- 深入C语言把文件读入字符串以及将字符串写入文件的解决方法
- 基于C语言中段错误的问题详解
- C语言中的内存泄露怎样避免与检测
- C语言金币阵列问题解决方法
- C语言实现输入一个字符串后打印出该字符串中字符的所有排列