数据结构与算法
观点1 我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。
比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果


我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。
这里面有 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算 法、动态规划、字符串匹配算法。
03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消 耗?
执行时间 (2n+2)*unit_time
所以,整段代码总的执行时间 T(n) = (2n2+2n+3)*unit_time。
而公式中的低阶、常量、系数三部分并 不左右增长趋势,所以都可以忽略
所以只需要记录最大量级就可以了
T(n) = O(n); T(n) = O(n2)。
时间复杂度分析
1. 只关注循环执行次数最多的一段代码
2.加法法则