排序-稳定--初始序列-复杂度

 

例: 求解递推关系T(n) = 2T(n/4) + n log n

a = 2,b = 4⇒n^logba = n^log42 = n0.5

f (n) = n log n

Case 3:f (n) =Ω(n0.5+ε),其中ε=0.5>0

并且 a f (n/b) = 2 (n/4)log(n/4) = (1/2)n log n – n ≤(1/2)n log n = c f (n),其中c=1/2<1

∴T (n) =Θ(n log n)

 

顺口溜:

快选希堆不稳(这几种排序是不稳定的), 归选基堆不变(这几种排序的时间复杂度不变化

元素的时间复杂度与初始序列无关的是:口诀:一堆(堆排序)海归(归并排序)选(选择排序)基友

 

 

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的

 

空间复杂度:

冒泡排序,简单选择排序,堆排序,直接插入排序,希尔排序的空间复杂度为O(1),因为需要一个临时变量来交换元素位置,(另外遍历序列时自然少不了用一个变量来做索引)

快速排序空间复杂度为logn(因为递归调用了) ,

归并排序空间复杂是O(n),需要一个大小为n的临时数组.

基数排序的空间复杂是O(n),桶排序的空间复杂度不确定

 

快排的时间复杂度平均就是O(nlogn),当数据序列有序时最差是O(n^2),退化成了冒泡排序;空间复杂度log(n),最坏是O(n),

快排最好的情况下,时间复杂度是 O(N*logN).

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值