HOME/Articles/

排序算法和搜索算法的简单了解

Article Outline

排序算法和搜索算法的简单了解

<!--more-->

一些常见的基于比较和交换的排序算法

下列算法都是基于原地交换的,不需要额外的空间

  • 冒泡排序(O(n^2))
  • 插入排序(O(n^2))
  • 快速排序(O(nlogn))
  • 堆排序(O(nlogn))

快速排序

  1. 选出一个数(随机选)
  2. 把小于等于这个数的其他所有数放到左边,再按照同样的方式进行排序
  3. 等于这个数的放到中间
  4. 把大于这个数的其他数放到右边,再按照同样的方式进行排序
  5. 合并三个数组

搜索算法

  • 深度优先搜索 使用栈或者递归存储搜索状态, 递归本质上是利用系统栈空间.
  • 广度优先搜索 使用队列存储搜索状态