一尘不染

确定向量中的大多数频率char元素?

algorithm

我试图确定以chars为元素的向量中最频繁出现的字符。

我正在考虑这样做:

  • 遍历向量并创建一个地图,其中的键将是向量中找到的唯一字符。相应的值将是该字符频率的整数计数。
  • 浏览完向量中的所有元素后,地图将包含所有字符频率。因此,我将不得不找出哪个键的值最高,从而确定向量中最频繁的字符。

但是,这似乎很令人费解,因此我想知道是否有人可以建议这种方法在性能/良好编码方面是否被认为是“可接受的”

能以更好的方式做到这一点吗?


阅读 278

收藏
2020-07-28

共1个答案

一尘不染

如果您仅使用常规的ascii字符,则可以使解决方案更快一些-
而不是使用地图,请使用大小为256的数组,并在数组单元格中使用给定代码’x’计算字符的出现次数count[x]。这将从您的解决方案中删除一个对数(256),从而使其速度更快。我认为就此算法的优化而言,还有很多工作要做。

2020-07-28