数据结构-算法基本概念

  • Post author:
  • Post category:其他




算法基本概念



5个特性:

1)有穷性

2)确定性

3)可行性

4)输入

5)输出



评价算法的优劣:

1)

时间复杂度

它定性描述算法的运行时间。一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)。

时间复杂度又分为:

最坏时间复杂度



平均时间复杂度



最好时间复杂度

最坏时间复杂度是指最坏情况下,算法的时间复杂度。

平均时间复杂度是指所有输入实力在等概率出现的情况下,算法的期望运行时间。

最好时间复杂度是指最好情况下,算法的时间复杂度。

算法时间复杂度应该不难求解吧。

如果循环主体中的变量参与循环条件的判断,这时候计算循环体里面的操作次数,得出时间复杂度。

如果循环主体中的变量与循环条件无关,就采用数学归纳法或间接累计循环次数。

可能觉得有点模糊,不如做两道题,自然茅舍顿开。

常见的渐进时间复杂度为:





O

(

1

)

<

O

(

l

o

g

2

n

)

<

O

(

n

)

<

O

(

n

l

o

g

2

n

)

<

O

(

n

2

)

<

O

(

n

3

)

<

o

(

2

n

)

<

o

(

n

!

)

<

o

(

n

n

)

O(1) < O(log2n) < O(n) < O(nlog2n) < O(n^2) < O(n^3) < o(2^n) < o(n!) < o(n^n)






O


(


1


)




<








O


(


l


o


g


2


n


)




<








O


(


n


)




<








O


(


n


l


o


g


2


n


)




<








O


(



n










2









)




<








O


(



n










3









)




<








o


(



2










n









)




<








o


(


n


!


)




<








o


(



n










n









)







2)

空间复杂度

空间复杂度S(n) 就是该算法所耗费的存储空间,是一个问题规模n的函数。这里有一点要注意,就是

算法原地工作是指算法所需的辅助空间为常量,即O(1)

如果觉得本文对你有帮助的话,不妨关注作者一波,小小的关注其实对我很重要。更多高质量内容与资料请访问:

数据结构简单学

,个人主页:

修心的小屋


如果喜欢的话,不妨关注一波,谢谢啦。

在这里插入图片描述



版权声明:本文为qq_44285551原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。