三向快速排序

三向快速排序

一、算法描述

1.1 核心思想

  • 三分,选取一个分区值,将数据分割成 3 部分:小于、等于、大于
  • 递归,对小于大于两部分继续排序,不断选点分割数据,直到无法分割为止
  • 整个过程和快速排序类似,只是原来的一个分区点变成了一个区间而已

1.2 细节解释

 二分插入排序

二分插入排序

一、算法描述

1.1 核心思想

  • 数据分为已排序区间和未排序区间
  • 从未排序区间取出元素,通过二分法找到合适的位置,插入到已排序区间中
  • 插入已排序区间时,同时要保证已排序区间的有序性

总体上和插入排序差不多,只是在插入的时候,使用二分查找来找到合适的插入位置。

1.2 细节解释

 计数排序

计数排序

一、算法描述

1.1 核心思想

  • 计数排序是桶大小为 1 的桶排序的一种特殊情况
  • 由于桶大小为 1,所以桶内都是相同的值
  • 桶内都是相同的值,无需桶内排序,只需要记录数据频率
  • 最后排序时,按照数据频率将数据填充回原数组

1.2 细节解释

 归并排序

归并排序

一、算法描述

1.1 核心思想

  • 二分,将数据二等均分,然后分别排序,再合并2个排好序的数据
  • 递归,一直二等均分数据,直到无法分割后,才开始递归合并返回
  • 整个二分和合并的过程类似于一棵二叉树,从下往上合并数据,先对子树排序,再合并成根节点

1.2 细节解释