什么是数据结构?
数据结构就是指一组数据的存储结构
什么是算法?
算法就是操作数据的一组方法
复杂度分析:
要衡量代码的执行效率,则需要用到时间、空间复杂度分析。一般使用(大O复杂度表示法)
1、时间复杂度
所有代码的执行时间与每行代码的执行次数是成正比的,而每行代码的执行次数和数据规模n也是成正比的。
大O时间复杂度表示实际上并不具体表示代码真正的执行事件,而是表示代码执行时间随数据规模增长的变化趋势,所以也叫做渐进时间复杂度,简称时间复杂度。
时间复杂度分析:
1)只关注循环执行次数最多的一段代码
大O复杂度表示法只是表示一种变化的趋势,通常可以忽略掉公式中的常量、低阶、系数,只需要记录一个最大阶的量级就可以了。所以在分析一个算法的事件复杂度的时候,循环执行次数最多的那段代码的执行次数与数据规模n的量级关系就是整个算法的时间复杂度
2)嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
常见的几种时间复杂度:
O(1):只要代码的执行时间不随着n的增大而增长,这样的代码的时间复杂度都是O(1)。一般情况下,只要算法中不存在循环语句、递归语句,不管有多少行代码,其时间复杂度都是O(1)。
O(logn):