我正在尝试不同类型的排序算法,我理解渐近时间和空间复杂性的概念。
我想知道我们是否可以在程序本身中编写一些逻辑来计算该算法的空间/时间复杂度,以便我们可以证明算法的行为符合预期?
有没有人对此有任何想法?
答案 0 :(得分:0)
使用检测功能,您只能测量用于特定问题实例的时间和空间。只有当您要枚举所有可能的问题实例时,您才能够证明最坏情况下的时间和空间复杂性。在实践中,这是不可行的。
您需要枚举所有可能的实例,因为您不知道哪些输入会很难,哪些输入很容易。例如,如果您要测试具有不同长度的1 ... n的有序输入的BubbleSort,您将永远不会观察到最坏的情况。