0. 前言
本文为排序算法的基本概念讲解,如:排序稳定性、内排序、外排序等专有名词,在后序排序博文中出现将不再做解释。
1. 排序
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
2. 排序稳定性
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j]
,且 r[i]
在 r[j]
之前,而在排序后的序列中,r[i]
仍在 r[j]
之前,则称这种排序算法是稳定的;否则称为不稳定的。
即原序列中相等元素的前后关系在新序列中不会发生改变,成为该方法排序具有稳定性。
3. 内排序
数据元素全部放在内存中的排序,适合元素个数不是很多的小表。
4. 外排序
数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。适合元素个数很多,不能一次将其全部元素放入内存的大表。
其基本方法为归并排序法,常见有海量数据的外排序如:位图、MapReduce 方法。内排序是外排序的基础。