数据结构与算法基础
所有主题将列在下方,持续更新中。
- 什么是算法
- 算法的定义:一种流程的描述,用于解决一类问题。
- 算法的特点
- 输入和输出
- 可行
- 有穷
- 确定
- 算法效率的度量方法
- 复杂度
- 时间复杂度
- 空间复杂度
- 数据结构
- 数组
- 链表
- 队列
- 栈
- 树
- 图
- 哈希表
- 查找算法
- 二分查找
- 哈希查找
- 排序算法
- 冒泡排序:两两交换,最大的放在最后一个。
- 选择排序:找到最大的,然后放在最后面。
- 插入排序:维护一个有序序列,往里插入到对应的位置。
- 希尔排序:动态间隔排序,间隔为1时排序完成。
- 归并排序:分治法。
- 快速排序:寻找基准值,然后二分,不断迭代,直至不能再分。
- 堆排序:建立并维护大顶/小顶堆。
- 基数排序:按个位十位百位数值进行多轮排序。
- 计数排序: 按数值分桶记录,然后依据记录还原有序序列。
- 桶排序:分桶分别计算,然后合并。
- 遍历算法
- 深度优先遍历算法
- 广度优先遍历算法
- 典型算法
- 递归算法
- 动态规划
- 贪心算法
- 分治法