该如何统计数字出现频率

2018-10-26 23:18:21 +08:00
 skyshine725
(1,2,3,4,)
(4,3,2,1)
(2,3,4,5)
(5,6,7,8)

有几百组这样的数

我想计算每一列里出现的次数最少的那个数字。

没思路。。。

1677 次点击
所在节点    问与答
5 条回复
lhx2008
2018-10-26 23:56:00 +08:00
几百组很快,给每一列开个 map 统计下就好
limuyan44
2018-10-27 00:26:34 +08:00
只有几百个连特殊算法都不要,直接算
zzj0311
2018-10-27 00:32:36 +08:00
几百硬算就是了,几百万才要考虑怎么做~
autoxbc
2018-10-27 02:30:48 +08:00
```js
const numCount = 4 ;
const setCount = 1000*1000 ;

const randomNum = () => Math.floor( Math.random()*10 );
const randomSet = () => Array(numCount).fill().map(randomNum);
const allData = Array(setCount).fill().map(randomSet);

console.time('t1');

const rslt = Array(numCount).fill().map( () => new Map() );
allData.forEach( set => {
set.forEach( (num,idx) => {
const map = rslt[idx];
const count = map.get(num) ? map.get(num) : 0 ;
map.set( num , count+1 );
} );
} );

console.timeEnd('t1');
console.log( rslt.map( map => [...map].map( e => e.join() ) ) );
```

一百万组数据耗时 1748 ms,CPU: i3 3220T
pipapa
2018-10-27 08:12:23 +08:00
Trie 加上堆排序怎么样?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/501569

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX