1. 算法重温
下面我们将带大家重新熟悉下排序算法。
- 插入排序 插入排序是一种较为简单的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 形象的可以理解为打扑克抓牌的过程,通常我们右手抓牌,没抓一张牌,就放到左手,抓下一张牌后,会把这张牌依次与左手上的牌比较,并把它插入到一个合适的位置(按牌面大小)。
- 选择排序 选择排序的排序思想就和它的名字一样,每次通过从无序的数组中选择出一个最小的(要求升序排列)数把他放到数组的最前面。再依次找次小的数字放到数组无序区的最前。直到数组为有序。
- 堆排序 堆排序(使用大堆,升序)从基本实现原理来说也是一种选择排序,它同样是确定了位置选择符合位置的元素,但是堆排序是更加优化的选择排序的版本,它利用了堆的特性。父结点的值大于子结点,且满足完全二叉树,大大提高了选择排序的效率。
- 冒泡排序 冒泡排序(这里指升序)是一种非常简单直观的排序方式,它是一种交换式的排序方法,基本思想就是相近的两个数字作比较,小的放到前面,大的放后面,按照这个规则从头向后比较,最大的数就被换到了数组尾。
- 快速排序 快速排序是一种在实际应用中经常用到的排序算法,它的