Prob_Solve 板


LINE

※ 引述《dreamoon (大笨蛋小月唷!)》之铭言: : ※ 引述《DJWS (...)》之铭言: : : 依序扫描n个中位数 O(n) : : 比x小(大)的中位数 : : 其所对应的阵列,预计删除小(大)的那一半 : : 也就是 low = (low + high) / 2 + 1; O(1) : : (或者 high = (low + high) / 2 - 1;) : : 预计更新阵列大小为 size = high - low + 1 O(1) : : 累计欲删除的元素数量 y (小的那些) O(1) : : 如果第k个元素小於等於 y,那麽就删除最大的那 1/4,下个回合找第 k 小的元素 : : 否则就删除最小的那 1/4,下个回合找第 k = Σsize - y 大的元素 : 对於这里我有点困惑 : 若k<=y,删除叫大的那些数是没问题的,因为那些数一定比第k个数还大 : 但是当k>y时,真的能删除较小的那一部分嘛? : 例如说现在有7*7的矩阵 : 1, 2, 3, 4, 5, 6, 7 : 8, 9,10,11,12,13,14 : 15,16,17,18,19,20,21 : 22,23,24,25,26,27,28 : 29,30,31,32,33,34,35 : 36,37,38,39,40,41,42 : 43,44,45,46,47,48,49 : 并且我要找的数是第17小的数 : 但比较小的那部分却只有16个数 : 於是按照这个演算法我们就会把真正的第17小的数给移除了0.0(我没理解错的话...) 其实把DWJS的方法稍微改一下就可以了。 对於目前的n条序各列改中位数 O(1) n个中位数找中位数(MoM) O(n) 对每一条序列用binary search找比MoM大和小各有多少个 O(n logn) 会有 n_l个比MoM小,n_r个比MoM大,选择目标的那一边。 更新序列的 head和 tail O(1) 看把n_l或n_r被砍掉的部份算到全部被移掉的N_L和N_R中。 重复以上动作直到MoM收敛。 这个动作至多进行 O(log n)次,分析如下: 考虑n条长度为n的序列 每次动作至少有n/2条会被移除一半 也就是说,至多只要 2 log n次,所有的序列都会只剩下一个元素。 因此在经过 O(n log n log n)的时间後,还剩下O(n)个元素要找第k大的数。 再加上最後的O(n),时间复杂度还是 O(n log n log n)。 ps. 跑实验的结果 random input大概只需要 log n个 iteration就会收敛了。 几乎不会跑到 2 log n个iteration。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.23.210
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1413369090.A.B9C.html
1F:推 FRAXIS: 用这个方法 解每行每列都排序的情况 就变成O(n lg n)了 10/15 20:17
2F:推 dreamoon: 我猜若只需求O(n log n log n)的话 10/15 20:48
3F:→ dreamoon: 甚至可以直接random取一个数代替MoM就行了 10/15 20:49
4F:→ chz: random取不保证收敛速度阿。 10/16 00:57
5F:推 DJWS: 用了binary search之後 每次动作不会有n/2条被移除"一半" 10/16 08:31
6F:推 DJWS: 不过用average case来分析的话 应该就对了 10/16 08:35
7F:→ DJWS: 然後这个方法拿来解每行每列都排序 依然是O(n logn logn) 10/16 08:36
8F:推 FRAXIS: 应该是变成至少有一半的列至少移除一半 10/16 21:01
9F:→ chz: n条的一半不就是 n/2条吗? 10/17 00:09
10F:推 FRAXIS: 如果每行每列都排序 partition可以在O(n)时间做完 10/17 01:05
11F:推 DJWS: 有可能删nl或nr,nl nr大小未知,为什麽是至少移除一半? 10/17 05:50
12F:推 DJWS: 每行每列都排序 只有第一回合是这样 10/17 05:52







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP