从0开始——算法是个什么玩意

2018-11-02  本文已影响0人  c枫_撸码的日子

前言

上一章中,主要学习可数据结构的基本概念,但是
程序 = 数据结构 + 算法
因此,这一节就来了解算法是个什么玩意。

算法的基本概念

1.算法定义
解决某个问题的具体步骤
2.算法的特性

3.算法时间复杂度的定义
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。
算法的时间复杂度,也就是算法的时间度量,记作:T(n)=O(f(n))。它表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度。其中f(n)为n的某个函数。

用大写O()来体现时间复杂度,成为大O记法

4.时间复杂度的分析方法
也称为推导大O阶方法

1.用常数1取代运行时间中的所有加法常数。
2.在修改后的运行次数函数中,只保留最高阶项。
3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。
这样得到的结果就是大O阶
int count = 1;
while (count < n)
{
  count = count * 2;
}

由于每次count乘以2以后,就距离n更近了。也就是说,有多少个2相乘后大于n,就会退出循环,由2^x=n,x=log2n,
则时间复杂度为O(logn).

算法的空间复杂度
就是算法所需要的存储空间。
记作:S(n) = O(f(n));其中n为问题的规模,f(n)为语句关于n所占存储空间的函数。

上一篇下一篇

猜你喜欢

热点阅读