28. 排序算法(1):总体介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dugudaibo/article/details/79463519

1 排序的基本概念

  假设含有n个记录的序列为{r1,r2,…,rn},其相应的关键字分别为{k1,k2,…,kn},需确定1,2,…,n的一种排列p1,p2,…pn,使其相应的关键字满足kp1<=kp2<=…<=kpn非递减(或非递增)关系,即使得序列成为一个按关键字有序的序列{rp1,rp2,…rpn},这样的操作就称为排序。

  在排序问题中,通常将数据元素称为记录。显然我们输入的是一个记录集合,排序后输出的也是一个记录集合。所以我们可以将排序看成是线性表的一种操作。

  排序的依据是关键字之间的大小关系,那么对同一记录集合,针对不同的关键字进行排序,可以得到不同序列。

2 排序的稳定性

  假设ki=kj(1<=i<=n,1<=j<=n,i!=j),且在排序前的序列中ri领先于rj(即i< j)。如果排序后ri仍领先于rj,则称所用的排序方法是稳定的;反之,若可能使得排序后的序列中rj领先ri,则称所用的排序方法是不稳定的。如下图所示

其中右上角的结果是稳定的排序结果,而右下角的结果是不稳定的排序结果。

3. 影响排序算法性能的几个要素

  排序算法根据是否需要调用硬盘分为内排序(不需要)和外排序(需要),在接下来的部分将介绍的排序算法都是内排序算法。

  (1) 时间性能:这里指的是比较和移动两者花费的时间的总和;

  (1) 辅助空间:占用内存的情况;

  (1) 算法的复杂性:指的是算法本身的复杂性,而不是时间复杂度。

猜你喜欢

转载自blog.csdn.net/dugudaibo/article/details/79463519
今日推荐