社区
数据结构与算法
帖子详情
有没有O(n)求逆序数方法?
_千鸟
2010-01-07 06:07:51
我知道模可以用O(nlogn)实现,但是还有没有更高效的,或是别的算法?
cin>>n;
for(int i = 0;i<n;i++)
cin>>num[i]; //保证输入的数在1~n范围,且不重复
cout<< reverse_num(num,n) <<endl;
...全文
712
14
打赏
收藏
有没有O(n)求逆序数方法?
我知道模可以用O(nlogn)实现,但是还有没有更高效的,或是别的算法? cin>>n; for(int i = 0;i>num[i]; //保证输入的数在1~n范围,且不重复 cout<< reverse_num(num,n) <<endl;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
honghu069
2010-01-12
打赏
举报
回复
几种求逆序数的办法
归并,树状数组,线段树 都是o(nlogn)的
真的有o(n)的吗,除非数据范围非常的小
x642458
2010-01-12
打赏
举报
回复
nlogn,这是分治策略里有这个的。网站协同过滤时需要用到计算逆序数,用分治策略,达到nlogn
forestkeeper1
2010-01-09
打赏
举报
回复
没有,逆序数最快的方法是nlogn。。。
FancyMouse
2010-01-07
打赏
举报
回复
>不过排序的同时也可以统计逆序!
mergesort改一下就是nlogn的了,不过估计lz已经知道了。
>感觉排序是找逆序的前提
这感觉做题还行,要是证明复杂度上下界的话一般都不管用。
绿色夹克衫
2010-01-07
打赏
举报
回复
原来是说效率上界的问题,碰到这种证明我一般都保持沉默。
感觉排序是找逆序的前提,不过排序的同时也可以统计逆序!
[Quote=引用 9 楼 fancymouse 的回复:]
>感觉有点蹊跷,这是真的么?
如果这个是对的,那统计逆序才有nlogn的下界。用排序解逆序只能说明逆序的最优算法有nlogn的上界。
[/Quote]
FancyMouse
2010-01-07
打赏
举报
回复
>感觉有点蹊跷,这是真的么?
如果这个是对的,那统计逆序才有nlogn的下界。用排序解逆序只能说明逆序的最优算法有nlogn的上界。
绿色夹克衫
2010-01-07
打赏
举报
回复
所有用来统计逆序的方法都可用于排序?这回方向对了么?
感觉有点蹊跷,这是真的么?
[Quote=引用 7 楼 fancymouse 的回复:]
>因此各种排序算法应该都可以用来统计逆序。
规约方向反掉了。。。
[/Quote]
FancyMouse
2010-01-07
打赏
举报
回复
>因此各种排序算法应该都可以用来统计逆序。
规约方向反掉了。。。
绿色夹克衫
2010-01-07
打赏
举报
回复
再高的效率恐怕够呛,除非所有数都分布在很小的一个区间里,或许有类似计数排序的方法。
如果是基于比较排序的,排序的过程本身,就可以用来记录逆序的个数,
因此各种排序算法应该都可以用来统计逆序。
[Quote=引用楼主 longteng1116 的回复:]
我知道模可以用O(nlogn)实现,但是还有没有更高效的,或是别的算法?
[/Quote]
天下第一好大人
2010-01-07
打赏
举报
回复
[Quote=引用 4 楼 dolphin_001 的回复:]
空间换时间
[/Quote]
怎么个换法?
Dolphin_001
2010-01-07
打赏
举报
回复
空间换时间
zhengjiankang
2010-01-07
打赏
举报
回复
啥是逆序数
_千鸟
2010-01-07
打赏
举报
回复
难道高手看不懂?
[Quote=引用 1 楼 leontown 的回复:]
没有的东西还很多。。。
[/Quote]
LeonTown
2010-01-07
打赏
举报
回复
没有的东西还很多。。。
逆序数
的几种
求
法
求
一个数列的
逆序数
逆序对:数列a[1],a[2],a[3]…中的任意两个数a[i],a[j] (i,如果a[i]>a[j],那么我们就说这两个数构成了一个逆序对
逆序数
:一个数列中逆序对的总数 如数列 3 5 4 8 2 6 9 (5,4)是一个逆序对...
归并排序:如何解决
逆序数
问题?
我们就一起来看看今天要解决的问题:给你一个任意的序列,你怎么
求
出序列的
逆序数
? 首先,我们要知道什么是
逆序数
。在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就是一个...
求
逆序数
的两种重要
方法
(51nod
逆序数
)
解决
逆序数
问题有三种
方法
,但是第一种暴力
求
解不赞成使用 所以这里不详细说明 那么第一种:分治法——归并排序
求
逆序数
时间复杂度为O(nlogn) 归并排序基本思想:将已有序的子序列合并,得到完全有序的序列;即...
编程
求
逆序数
编程
求
逆序数
逆序数
,也就是一个排列中当某... 2与1,就是找出排列第i个数后有几个比它小的数,有几个就有几个
逆序数
,遍历该排列,找出所有
逆序数
并
求
和就是该排列的总
逆序数
。 话不多说,直接上代码 #incl...
逆序数
的三种
求
法
逆序数
:一个数列nums[N],对任意两个数,如果前面的数...下面我们用三种
方法
(第一种
方法
没有实际意义)来
求
Reverse数组。 1. 完全暴力计数法 先将Reverse[N]数组初始化为0.
求
Reverse[i]时,从nums[i]开始,依次向后
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章