数据结构和算法
数据结构就是内存中管理数据:增删查改
而数据库实在磁盘中管理数据:增删查改
算法最简单的例子就是排序
数据结构和算法是相辅相成的。
复杂度分为时间复杂度和空间复杂度。
1:如何衡量一个算法的好坏。
可以从时间维度和空间维度进行分析:
现在的算法更加关注时间效率。
算法的时间复杂度是一个函数,他定量描述了该算法的运行时间:通过计算算法中的基本操作的执行次数。
我们举一个例子,假如我们需要100w个算法的基本操作
冒泡排序的时间复杂度为O(N^2)
快排的时间复杂度为O(logN)
我们使用哪个排序更好呢?
假如我们使用冒泡排序的话
100w*100w的结果为1万亿,我们需要计算1万亿次
而假如我们使用快排的话
log100w的结果大概是20,我们只需要计算20次。
所以我们选择快排更好。
我们再举一个例子
count语句一共计算了多少次,N^2+2N+10
当N=10时,对应的结果为130
当N=100时,对应的结果为10210
当N=1000时,对应的结果为1002010
我们计算时间复杂度时,我们只需要取一个大概执行次数。我们把表达式影响不大的项都去掉,则对应的结果为
=N^2
总结:我们在计算时间复杂度时,我们只需要计算大概执行次数,这里我们使用大O的渐进表示法。
所以该算法的时间复杂度为O(N^2)
实例