逆序对和排序算法的下界

逆序对:对于数组中两个位置的元素,具有性质i < j但是A[i] > A[j]的序偶(A[i],A[j])。例如,1,4,5,2,3中有4个逆序对,是(4,2),(4,3),(5,2),(5,3),这就是插入排序执行的交换次数,因为每次交换两个顺序不对的元素恰好消除一个逆序对,最终排序好的数组没有逆序对,插入排序的时间就是O(I+N),其中I是逆序对的数量,N是遍历的时间,若数组是排序的,那么时间就是O(N)

定理:N个互异数的数组的平均逆序数是N(N-1)/4

定理:通过交换相邻元素进行排序的任何算法平均时间都是O(N^2)

因此,想要突破O(N^2)的时间界,一定要一次交换消除很多逆序对,比如若将一个很大的数交换到后面,那么一次就消除了很多逆序对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值