background image

 

 

 

 

 

相关知识介绍(并非严格定义)

 

相关知识介绍(并非严格定义)

1

1

、稳定排序和非稳定排序

、稳定排序和非稳定排序

简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之

简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之

前的相对次序,我们就

前的相对次序,我们就

说这种排序方法是稳定的。反之,就是非稳定的。

说这种排序方法是稳定的。反之,就是非稳定的。

比如:一组数排序前是

比如:一组数排序前是

a1,a2,a3,a4,a5

a1,a2,a3,a4,a5

,其中

,其中

a2=a4

a2=a4

,经过某种排序后为

,经过某种排序后为

a1,a2,a4,a3,a5

a1,a2,a4,a3,a5

则我们说这种排序是稳定的,因为

则我们说这种排序是稳定的,因为

a2

a2

排序前在

排序前在

a4

a4

的前面,排序后它还是

的前面,排序后它还是

a4

a4

的前面。假如变成

的前面。假如变成

a1,a4,

a1,a4,

a2,a3,a5

a2,a3,a5

就不是稳定的了。

就不是稳定的了。

2

2

、内排序和外排序

、内排序和外排序

在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储

在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储

顺序,称为内排序;

顺序,称为内排序;

在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存

在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存

放顺序排序方法称为外排序。

放顺序排序方法称为外排序。

3

3

、算法的时间复杂度和空间复杂度

、算法的时间复杂度和空间复杂度

所谓算法的时间复杂度,是指执行算法所需要的计算工作量。

所谓算法的时间复杂度,是指执行算法所需要的计算工作量。

一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。