读书人

高手!一个关于区间的模糊排序有关问题

发布时间: 2012-05-11 12:55:37 作者: rapoo

求助高手!!!一个关于区间的模糊排序问题
考虑这样的一种排序问题,即无法准确地知道待排序的各个数字到底是多少。对于其中的每个数字,我们只知道它落在实轴上的某个区间内。亦即,给定的是n个形如[ai,bi]的闭区间,其中ai<=bi。算法的目标是对这些区间进行模糊排序,亦即,产生各区间的一个排列<i1,i2,...,in>,使得存在一个cj属于[aij,bij],满足c1<=c2<=...<=cn。
1)为n个区间的模糊排序设计一个算法。你的算法应该具有算法的一般结构,它可以快速排序左部端点(即各ai),也要能充分利用重叠区间来改善运行时间。(随着各区间重叠得越来越多,对各区间进行模糊排序的问题会变得越来越容易。你的算法应能充分利用这种重叠)
2)证明:在一般情况下,你的算法的期望运行时间为nlgn,但当所有的区间都重叠时,期望的运行时间为n(亦即,当存在一个值x,使得对所有的i,都有x属于[ai,bi])。你的算法不应显式地检查这种情况,而是应当随着重叠量的增加,性能自然的有所改善)


[解决办法]
"1. Those whose lower bounds are higher than bx; 2. Those whose higher bounds are lower than ax; 3. Others
"

这样也是有问题的;

比如

(2,5) (4,6) (1,3) 三个区间,他们之间有无公共公共区间;

但当 [ax,bx]取的是(2,5)的时候; [1]==null [2]==null [3]==( (2,5) (4,6) (1,3) )

这样算法就结束了,但 (2,5) (4,6) (1,3)根本就没排好顺序;


lz自己想清楚了再回复吧.




读书人网 >软件架构设计

热点推荐