逆序对和排序算法的下界

逆序对:对于数组中两个位置的元素,具有性质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)的时间界,一定要一次交换消除很多逆序对,比如若将一个很大的数交换到后面,那么一次就消除了很多逆序对

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值