归并排序和几种内部排序的比较

归并排序

归并排序(Merging Sort) 归并的含义是将两个或两个以上的有序表组合成一个新的有序表。
基本思想:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到【n/2】个长度为2或1的有序子序列;再两两归并,…,如此重复,直至得到一个长度为n的有序序列为止,这种排序叫2-路归并排序。

这里写图片描述

说明:归并排序的时间复杂度为O(nlogn),它是一种稳定的排序方法。


各种内部排序方法的比较

排序方法平均时间最坏时间辅助存储
简单排序O(n²)O(n²)O(1)
快速排序O(n㏒n)O(n²)O(㏒n)
堆排序O(n㏒n)O(n㏒n)O(1)
归并排序O(n㏒n)O(n㏒n)O(n)
基数排序O(d(n+rd))O(d(n+rd))O(rd)

1. 从平均时间性能而言,快速排序最佳,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。在n较大时,归并排序所需时间较堆排序省,但它所需的辅助存储量最多。
2. 基数排序最适用于n值很大而关键字较小的序列。
3. 从方法稳定性来比较,基数排序是稳定的内排方法,所有时间复杂度为 O(n²)的简单排序法也是稳定的,然而,快速排序、堆排序和希尔排序等时间性能较好的排序方法都是不稳定的。没有哪一种是绝对最优的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值