![]() |
1
2
在网上看看VB6的排序算法的一个不错的实现(我不敢相信它没有内置的!),对数组进行排序,然后通过它计算出现的次数(这很简单,因为数组中所有相同的项都在一起)-在遍历过程中跟踪最频繁发生的项,就完成了。这应该是O(nln(n))—也就是说,足够快—如果您使用了一个像样的排序算法(快速排序或类似的算法)。 |
![]() |
2
2
你可以用哈希表。散列数组的所有元素(即O(n))。您需要一个后端数据结构来保存每个哈希箱包含的唯一值和发生次数(某种类似于C++ STD::MAP的关联存储器)。只要你能保证在任何给定的bin中不超过一个常量m,碰撞次数(对于不同的哈希输入值),这就是O(m logm),但由于m是常数,这实际上是O(1)。这种假设可能不合理,但关键是要为输入值获得足够好的价差。 要退出模式,请检查哈希表中的所有元素,这些元素将是原始输入数组中出现的值以及它们出现的次数。找到出现次数最多的值(同样是O(n))。如果你能找到一个合适的哈希函数,总复杂度是O(n)。如果哈希函数不能提供良好的冲突性能,那么最坏的性能将是O(n logn)。 另一方面,.Net提供了一个大型的运行库,可能会使这项工作变得更容易。如果可行,您可能会考虑使用新版本的VB。 |
![]() |
3
2
|
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
![]() |
Wadu Hek · 查找列表中唯一的重复项 2 年前 |
![]() |
Crawford Patten · 如何获得整数列表的四分位数 2 年前 |
![]() |
MoonGoose · 如何在python中围绕特殊字符创建空间? 2 年前 |
![]() |
taha khamis · 在一个数字中组合元素的省道 2 年前 |
![]() |
Soup · 比O(n)更快地找到阶乘n模m 2 年前 |
![]() |
BigO · 单词积分游戏不断增加数字[关闭] 2 年前 |