作为我正在构建的测试平台的一部分,我正在寻找一个简单的类来计算整数值的直方图(用于解决问题的算法迭代次数)。答案应该被称为这样:
Histogram my_hist = new Histogram();
for( uint i = 0; i < NUMBER_OF_RESULTS; i++ )
{
myHist.AddValue( some_result );
}
for( uint j = 0; j < myHist.NumOfBins; j++ )
{
Console.WriteLine( "{0} occurred {1} times", myHist.BinValues[j], myHist.BinCounts[j] );
}
我有点惊讶于谷歌搜索没有找到一个简洁的解决方案,但也许是因为我没有搜索正确的关键词。是否存在通用解决方案,或者值得自己动手解决?
SortedDictionary
添加项目比使用普通字典并在最后对KeyValuePair<,>
元素列表进行排序要慢得多。 在SortedDictionary
中插入和检索元素都是**O(log(N))**。请参见https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.sortedlist-2?view=net-5.0#remarks - 有关更快的代码示例,请参见下面的答案。 - Cristian Diaconescu