按频率排序数组 - 有更好的解决方案吗?

时间:2018-01-28 14:44:08

标签: arrays sorting

我正在寻找可以实现此问题的算法: input:字符串数组 输出:按以下顺序排列的字符串:

a)频率(主要排序) b)a-z

所以如果输入是:

"富""猫""富""凉爽""猫"&# 34;咕""凉爽"

输出应该是:

"猫""猫""凉爽""凉爽""富"&# 34; FOO""咕"

我可以将所有内容放在hashmap string-> int(freq)。

然后按键,值对地图进行排序。

无论如何(O(n * log(n))的复杂性。

可以做得更好吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您想用特定语言解决这个问题吗?如果没有,

使用lodash你可以这样解决:

_.join(_.sortBy(_.groupBy(["foo","cat","foo","cool","cat","goo","cool"])))

这将输出为:cat,cat,cool,cool,foo,foo,goo