algorithm - 我们可以对具有 O(n) 空间复杂度的 n 个元素进行计数排序算法吗?
问题描述
我今天参加了期中考试,其中一个算法问题是“我们能否为计算 n 个元素的排序 O(n) 计算空间复杂度”。实际上我找不到任何解决方案。有没有人知道任何算法或数据结构。我想知道答案并考虑一下。非常感谢。
解决方案
如果我们在计数排序中使用数组进行计数,那么它需要的空间等于最大和最小键值之间的差。我们可以使用哈希表,然后我们可以将空间复杂度降低到相对于输入中元素数量的线性。但在这种情况下,隐藏常数可能太大,性能可能会下降。
推荐阅读
- sharepoint - 我们可以在不使用网站选项卡的情况下借助 Graph API 将 Sharepoint 站点的组列表附加到 Microsoft Teams 选项卡中吗
- swift - 如何在 Swift 5 中通过 TCP/IP 获取和显示图像?
- bash - 从另一个 bash 脚本调用 bash 脚本函数不显示我的 shell 命令
- r - 订购堆积条形图ggplot2的“填充”
- json - Terraform:JSON 路径查询在 terraform 中不起作用
- javascript - 如何使用 onChange 设置当前 flatpickr 输入字段的值?
- flutter - 使用 BLoC 模式的 Flutter 默认计数器应用
- javafx - 如果 TextField 输入无效,如何使用 JavaFX 绑定禁用按钮
- reactjs - 如何限制 reactjs useContext 仅用于来自 react-router 的某些路由
- python - 更 Pythonic 的方式来遍历一个范围