八大常用排序简单总结
假设含有n个记录的序列为{r1,r2,…,rn},其相应的关键字分别为{k1,k2,…,kn},需确定1,2,…,n的一种排列p1,p2,…,pn,使其相应的关键字满足kp1<=kp2<=…<=kpn(非递减或非递增)关系,即使得序列成为一个按关键字有序的序列(rp1,rp2,…,rpn),这样的操作称为排序。
下面分类给出了各大算法的详细描述和实现的链接。
排序的稳定性
假设ki=kj(1<=i<=n,1<=j<=n,i≠j),且在排序前的序列中ri领先于rj(即i<j)。如果排序后ri仍领先于rj,则称所用的排序方法是稳定的;反之,若可能使得排序后的序列中rj领先于ri,则称所用的排序方法是不稳定的 。
内排序与外排序
内排序是在排序整个过程中,待排序的所有记录全部被放置在内存中。外排序是由于排序的记录个数太多,不能同时放置在内存,整个排序过程需要在内外存之间多次交换数据才能进行 。下面主要介绍内排序方法。
内排序的算法性能影响:
- 时间性能 ,高效率的内排序算法应尽可能少的比较关键字和移动记录。
- 辅助空间 ,辅助存储空间是除了存放待排序所占用的存储空间之外,执行算法所需要的其他存储空间。<