首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

请问一道鄙视题

2013-03-04 
请教一道鄙视题回忆版安卓日益火爆,安卓市场对软件进行排序。。排序因子P表示推广费,K表示用户搜索关键字的

请教一道鄙视题
回忆版
安卓日益火爆,安卓市场对软件进行排序。。
排序因子P表示推广费,K表示用户搜索关键字的排序。
假如有A和B软件。某市场对软件进行如下排序方法:
1.如果 |A.P - B.P| <10 则完全按照K排序。
2.如果 |A.P - B.P| >10 则完全按照P排序。
按照A(P,K)。
如果A(65,90),B(50,30)
则65-50>10,完全按照P排序,A在B前面
如果A(55,90),B(50,30)
则55-50<10,完全按照K排序,B在A前面
问:1.上述排序算法有什么问题。
    2.如何对该算法进行改进。
问问大家这道题咋整。。

我回答的是增加一个排序的比重因子,P占x,则K占1-x。
排序时 对A.P*x+A.K*(1-x) 与B.P*x+B.K*(1-x) 进行比较排序
如果|A.P - B.P| <10 则x改变为一个值。
如果|A.P - B.P| >10 则x改变为另一个值。
来综合排名,保证排名的相对公平。
面试官说没看懂我说的啥。。所以来问问大家。
[解决办法]
1. 会发生A>B>C>A的情况。
    P  K
A   0  2
B   9  1
C  18  0
2. 看需求。
[解决办法]
没太看懂你的意思
但是看大致的样子 像排名的一个问题
如果是这个问题 就用分治
分成两部分 分别求出不同排名的颠倒情况 
比如 412 那么颠倒情况就是2+1+1 = 4 
然后 再合并求颠倒情况 如此的话 时间复杂度就是 2f(2/n)+n 即,o(nlogn)

热点排行