背景
假定被排序的数据是由一组元素组成的表,而元素由若干数据项组成;
其中有一项可用来标识该元素,称为关键字项,其值称为关键字。
关键字可用作排序运算的依据。
大部分排序的核心是:数据交换(关键字排序)。
int a = 4, b = 3, tmp;
tmp = a;
a = b;
b = tmp;
1.1 排序
就是整理表中的元素,使之按关键字递增或递减的顺序排序。
1.2 稳定性
当待排序的表中,存在多个关键字相同的元素:
经过排序后,这些具有相同关键字的元素之间的相对次序保持不变,则称这种排序方法是稳定的;
经过排序后,这些具有相同关键字的元素之间的相对次序发生改变,则称这种排序方法是不稳定的。
1.3 内排序与外排序
内排序:整个表都都放在内存中处理,排序时不涉及内外存数据的交换;
外排序:排序时涉及内外存数据的交换。
排序的策略:是否需要关键字比较分类:
需要关键字比较:插入排序、选择排序、交换排序、归并排序;
不需要关键字比较:基数排序。