Ajax 板


LINE

上面原因有人解释过了 这里提供一个简单的解法: Array(N) .fill() .map( (v,i) => [ ++i, Math.random() ] ) .sort( (a,b) => a[1] - b[1] ) .map( (x) => x[0] ) 写成白话文(?)的话大概是这样 var arr = []; for (var i = 0; i < N; ++i) { arr[i] = [ i + 1, Math.random() ]; } arr.sort(function compare(a, b) { return a[1] - b[1]; }); for (i = 0; i < N; ++i) { arr[i] = arr[i][0]; } 如果要用已经填好资料的阵列来做的话可以这样: // dataArray contains some elements dataArray .map( (e) => [e, Math.random()] ) .sort( (a, b) => a[1] - b[1] ) .map( (e) => e[0] ) 翻成白话文: for (var i = 0; i < dataArray.length; ++i) { dataArray[i] = [ dataArray[i], Math.random() ]; } dataArray.sort(function compare(a, b) { return a[1] - b[1]; } for (i = 0; i < dataArray.length; ++i) { dataArray[i] = dataArray[i][0]; } 原解法作者:Dominic Wu 讨论串:https://www.facebook.com/groups/f2e.tw/permalink/1326307397406622/ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.238.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1498483294.A.097.html
1F:推 LPH66: 这就是我推文说的「给每个元素一个乱数值再用它排序」方法 06/26 21:38
2F:→ LPH66: 之所以要这样做的原因还是在於比较函式的全序性 06/26 21:39
3F:→ LPH66: 虽然谁大谁小要随机, 但给定两个东西要回传一致的结果 06/26 21:39
4F:→ LPH66: *给定同样的两个东西 06/26 21:40
5F:→ LPH66: 然後其实我还漏讲了一个条件是递移性 06/26 21:40
6F:→ LPH66: 也就是你的比较函式必须要能够当 a>b, b>c 时保证 a>c 06/26 21:41
7F:→ LPH66: 很多常见的演算法是靠着这个条件才得以快速排序 06/26 21:42
8F:→ LPH66: 这两个条件单纯回传 1 / -1 的乱数函式是无法达成的 06/26 21:43
9F:推 Kenqr: 用sort处理的时间复杂度是O(NlogN),且需要使用temp array 06/27 10:15
10F:→ Kenqr: https://stackoverflow.com/a/12646864 这边的方法 06/27 10:15
11F:→ Kenqr: 时间复杂度是O(N),应该是一般使用的正规方法。 06/27 10:16
12F:→ Kenqr: 另外下面有人提到类似原原po的方法,但作者自己承认错了XD 06/27 10:16
13F:→ s25g5d4: 其实这解法的优点是可以写成一行 XD 06/27 15:04
14F:→ CaptainH: 写成一行这麽重要? 简单的事情何必用复杂的方法做 06/28 00:00
15F:推 oToToT: 时间复杂度跟空间复杂度都比较高的做法OAO 06/28 13:57







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灯, 水草

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

TOP