您的位置:首页 > 其它

各种排序算法性能比较

2014-08-11 20:25 253 查看


1.稳定性比较

合并排序、插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的
选择排序、希尔排序、快速排序、堆排序是不稳定的


2.时间复杂性比较

 平均情况最好情况最坏情况
归并排序O(nlogn)O(nlogn)O(nlogn)
基数排序O(n)O(n)O(n)
快速排序O(nlogn)O(nlogn)O(n2)
希尔排序O(n1.5)O(n)O(n1.5)
插入排序O(n2)O(n)O(n2)
选择排序O(n2)O(n2)O(n2)
归并排序,基数排序对序列的输入顺序没有影响,堆排序影响较小



3.辅助空间的比较

线形排序、二路归并排序的辅助空间为O(n),其它排序的辅助空间为O(1);


4.其它比较

插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。
反而在这种情况下,快速排序反而慢了。
当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。
若待排序的记录的关键字在一个明显有限范围内时,且空间允许是用桶排序。
当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。
当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下。
宜用归并排序。
当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排序算法 性能