前言:前段时间学习了一门数据结构与算法的课程,分享记录一下学习的笔记。后续会陆续更新。
最常用的、最基础数据结构与算法
10 个数据结构
数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树
10 个算法
递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
复杂度分析
分析、统计算法的执行效率和资源消耗
大O时间复杂度
实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,也叫作渐进时间复杂度,简称时间复杂度
乘法法则
嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
复杂度量级
常量阶O(1)、对数阶O(logn)、线性阶O(n)、线性对数阶O(nlogn)、平方阶O(n^2)、立方阶O(n^3)、k次方阶O(n^k)、指数阶O(2^n)、阶乘阶O(n!)
空间复杂度
表示算法的存储空间与数据规模之间的增长关系
最好情况时间复杂度
在最理想的情况下,执行这段代码的时间复杂度
最坏情况时间复杂度
在最糟糕的情况下,执行这段代码的时间复杂度
平均情况时间复杂度
加权平均时间复杂度或者期望时间复杂度
均摊时间复杂度
一种特殊的平均时间复杂度
