我正在研究数值分析,我可以读到算法的复杂性为“约n ^ 2/2”。
我知道复杂性与写/读/乘/加运算有关,但我无法理解为什么'关于'而不是'精确'。
答案 0 :(得分:1)
在算法分析中,通常仅通过主导增长项来描述算法的增长率。例如,如果算法具有n 2 / 2 + 13n + 1的实际运行时间,则随着n变大(例如,n> 50),几乎所有运行时都由n 2 / 2项,很少由其他两个项贡献。
在许多计算机科学中,使用big-O表示法描述算法,它完全丢弃除主导增长项之外的所有内容,甚至丢弃所有常数因子。在数值计算中,通常只是保持主导增长项及其常数因子,因为对于大型输入,该术语几乎决定了所有运行时。但是,常数因子对于比较不同的算法仍然很有用。
简而言之 - 人们可以获得精确的分析,但对于大型问题规模来说,它不会非常有用。占主导地位的增长期非常重要。
希望这有帮助!