谁不说俺算法好--0

/--------------------------------------------------

本文所表述纯属个人观点,完整理论请参考相关书籍!如果有说错的地方,欢迎指正,共同学习。

--by BenzKuai

---------------------------------------------------

程序  = 数据结构 + 算法

 

地球人都知道!!

 

数据结构:元素与元素的关系而已,仅此而已。当然满足不同的关系,可以定义成不同的结构。以后慢慢讨论。。。

 

算法:当然就是算出某个问题解的方法。只要能解出答案的都可以叫算法。只是,算法有优有劣。以后慢慢讨论。。。

 

 

既然算法有优有劣,那么问题来了:如何度量一个算法是优是劣?

 

当前,流行的做法是:算出算法的最坏情况(本文只说时间复杂度),也就是所谓的"大O"。--要记住,算法是计算“增长率”的。比如:f(N)= 1,常量,它不会变化当然就不会有增长率;OK,再看 f(N)= N,这个增长率是线性的,再看 f(N)= N2,这个增长率是平方的。当N是问题的规模时,这个增长率也就是影响算法性能的关键。

 

可能你会问,这个f(N)=N的公式从何而来?问的很好。

 

我们假设程序中每个操作语句都执行相同的时间,那么我们的问题就将转化成求解操作步骤的数理。

f(N) = 解出问题解的所有操作步骤,或者说所有的执行语句(声明就不用再计算了)。

 

例子:

最坏情况下,v不在这个数组中。那for循环要执行n次,则就会有i=0一次操作,i<n,i++,v==x[i] 3n次操作,再有return -1一次操作,

总共f(n)=3n+2次操作。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值