第一节 数据结构的概念
1.1 什么是数据结构
数据结构是指互相之间存在一种或多种特定关系的数据元素的集合
一句话解释:存数据的,而且还是存在内存中。
1.2常见的数据结构
线性表:数组,链表,栈,队列
散列表:hash 位图
树:二叉树 多路树 堆
图:有向图 无向图 带权图
第二节 算法的概念
2.1什么是算法
算法是指解题方案的准确而完整描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制
一句话描述:算法是一种解决特定问题的思路
2.2常见的算法
排序:冒泡 快速 插入 递归 计数排序 选择排序 堆排序 桶排序
其它:LRU LFU hash算法 一致性hash
算法思维:递归 回溯 分治 贪心 动态规则
第三节 算法复杂度
数据结构和算法本质上是“快”和“省”,所以代码的执行效率是非常重要的度量
我们采用时间复杂度和空间复杂度来计算
3.1 时间复杂度
我们假设执行一行代码的时间为t,通过估算,代码的执行时间T(n)与次数成正比
T(n)=0(f(n))
T(n):代码执行时间
n:数据规模
f(n):每行代码执行次数总和
O:代码的执行时间与f(n)表达式成正比
当n无限大时,低阶,常量,系统都可以忽略
所以T(n)=O(n)
即时间复杂度为O(n),也就是代码执行时间随着数据规模的增加而增长