Article Outline
排序算法和搜索算法的简单了解
<!--more-->
一些常见的基于比较和交换的排序算法
下列算法都是基于原地交换的,不需要额外的空间
- 冒泡排序(O(n^2))
- 插入排序(O(n^2))
- 快速排序(O(nlogn))
- 堆排序(O(nlogn))
快速排序
- 选出一个数(随机选)
- 把小于等于这个数的其他所有数放到左边,再按照同样的方式进行排序
- 等于这个数的放到中间
- 把大于这个数的其他数放到右边,再按照同样的方式进行排序
- 合并三个数组
搜索算法
- 深度优先搜索 使用栈或者递归存储搜索状态, 递归本质上是利用系统栈空间.
- 广度优先搜索 使用队列存储搜索状态