Java 实现常见内排序
一、内排序 1、排序基本概念 (1)什么是排序? 排序指将一个数据元素集合或者序列 按照某种规则 重新排列成一个 有序的集合或者序列。分为内排序、外排序。排序算法的好坏直接影响程序的执行速度以及存储空间的占有量。 (2)什么是内排序?外排序? 内排序:指待排序的序列完全存放在内存中所进行的排序过程(不适合大量数据排序)。 外排序:指大数据的排序,待排序的数据无法一次性读取到内存中,内存与外存需进行多次数据交换,以达到排序的目的。 (3)什么是稳定排序? 稳定排序指的是 相等的数据经过某种排序算法排序后,仍能保证它们的相对顺序与未排序之前相同。 比如一个序列 a1 a2 a3 a4 a5, 且 a1 < a2 = a3 < a4 < a5。 若经过某种排序算法后,结果仍为 a1 < a2 = a3 < a4 < a5,那么该排序算法是稳定的。 若经过某种排序算法后,结果为 a1 < a3 = a2 < a4 < a5,那么该排序算法是不稳定的。 2、内排序分类 (1)按种类划分: 插入排序:直接插入排序、希尔排序。 选择排序:选择排序、堆排序。 交换排序:冒泡排序、快速排序。 归并排序:归并排序。 (2)按稳定排序划分: 稳定排序:冒泡排序、归并排序、直接插入排序。 非稳定排序:快速排序、希尔排序、堆排序、选择排序。 (3)比较: