各种排序方法比较

      首先说明,十全十美的排序方法是没有的,不然,我们学习一种就OK了,还学习其它的方法干嘛呢?

      在实际应用中,应该根据实际的情况作出选择。首先考虑排序对稳定性的要求,若要求稳定,则只能在稳定的方法中选取,否则可以在全部的方法中选取;其次考虑其丢弃结点数n的大小,若n较大,则可以在改进的方法中选取,否则在简单的方法中选取;然后再考虑其它的一些因素。大致有以下结论:

      1、当待排序的结点数n较大时,关键字的值分布比较随机,并且对排序稳定性不作要求时,宜选取快速排序法;

      2、当待排序的结点数n较大时,内存空间又允许,并且要求排序稳定时,宜采用归并排序法;

      3、当待排序的结点数n较大时,关键字的值的分布可能出现升序或者逆序的情况,并且对排序稳定性不作要求时,宜采用堆排序方法或者归并排序法;

      4、当待排序的结点数n较小时,关键字的值基本有序(升序)或者分布比较随机,并且有排序稳定性要求时,宜采用插入排序法;

      5、当待排序的结点数n较小时,对排序稳定性不作要求时,宜采用选择排序方法,若关键字的值不接近逆序,也可以采用直接插入排序法;

      6、已知两个有序表,若要将它们组合成一个新的有序表,最好的方法就是归并排序法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值