乱七八糟的排序

一、基本概念和排序方法概论

1.什么是排序?

将一组杂乱无章的数据按一定规律顺次排列起来。

即,将无序序列排成一个有序序列(由小到大或由大到小)的运算。

注:如果参加排序的数据结点包含多个数据域,那么排序往往是针对其中某个域而言的。

2.排序的应用非常广泛

1)软件中直接应用(资源管理器:文件名称、修改日期、大小,方便查找,数据处理软件,淘宝)

2)程序中间接应用

二分查找、最短路径、最小生成树

3.排序方法的分类

1)按数据存储介质可分为:

内部排序:数据量不大,数据在内存,无需内外交换数据

外部排序:数据量大,数据在外存(分批)

2)按比较器个数:

串行排序:同一时刻比较一对元素

并行排序:同一时刻比较多对元素

3)按主要操作:

比较排序:用比较的方法(插入、交换、选择、归并)

基数排序:不比较元素的大小,仅仅根据元素本身的取值确定其有序位置。

4)按辅助空间:

原地排序:辅助空间用量为O(1)的排序方法,不需要额外的空间。

非原地排序:辅助空间用量超过O(1)的排序方法

5)按稳定性:

稳定排序:能够使任何数值相等的元素,排序以后相对次序不变。

非稳定排序:不是稳定排序的方法。

eg:

原始数据:49,97,76,13,27,49'

直接插入排序法结果:13,27,49,49',76,97

简单选择排序法结果:13,27,49',49,76,97

排序稳定的意义:

排序稳定性只对包含多个数据域的数据结点有意义。

eg:

n个学生信息(学号、姓名、语文、数学、英语、总分)

a.按数学成绩从高到低排序

b.按照总分从高到低排序

c.总分相同情况下,数学成绩高的排在前面

6)按自然性:自然排序和非自然排序

你可能感兴趣的:(乱七八糟的排序)