gpt4 book ai didi

algorithm - 当键占用超过一个内存字时,归并排序/基数排序的复杂度是否会发生变化

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:32 26 4
gpt4 key购买 nike

这是一个家庭作业问题。所以我正在寻找提示而不是解决方案。考虑一组 n 个数字。每个数字的长度为“k”位。假设'k'大得多并且不适合内存的单个单词。在这种情况下,归并排序和基数排序的复杂度是多少?

我的分析是 - 渐近复杂度不依赖于底层架构细节,例如数字占用的单词数量等。可能是常量因素发生变化并且算法运行速度变慢,但总体复杂度保持不变。例如,在像 Python 这样处理任意长整数的语言中,算法保持不变。但是我的一些 friend 争辩说,随着数字“w”占用的单词数量向无穷大增长,复杂性确实发生了变化。

我走的路对吗?

最佳答案

算法的运行时间确实取决于构成输入的机器字数。以整数乘法为例。计算机可以在时间 O(1) 内计算两个单字数字的乘积,但它不能在时间 O(1) 内计算两个任意大小数字的乘积,因为机器必须将每个单词加载到内存中其计算的一部分。

作为基数排序与合并排序的提示 - 合并排序算法在元素之间进行 O(n log n) 比较,但这些比较可能不会每次都花费 O(1) 时间。比较两个需要 k 个机器字的数字需要多少时间?同样,基数排序的运行时间取决于数字中的位数。如果每个数有k个机器字,需要多少轮基数排序?

希望这对您有所帮助!

关于algorithm - 当键占用超过一个内存字时,归并排序/基数排序的复杂度是否会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com