Algorithm 最坏情况下快速排序运行时间的重现性
假设我们构建了一个快速排序,并且枢轴值需要线性时间。查找最坏情况下运行时间的重复周期 我的答覆是: T(n)=T(n-1)+T(1)+θ(n) 最坏的情况发生在子阵列完全不平衡时。 一个子阵中有1个元素,另一个子阵中有(n-1)个元素。 θ(n),因为找到枢轴需要运行时间nAlgorithm 最坏情况下快速排序运行时间的重现性,algorithm,math,quicksort,recurrence,Algorithm,Math,Quicksort,Recurrence,假设我们构建了一个快速排序,并且枢轴值需要线性时间。查找最坏情况下运行时间的重复周期 我的答覆是: T(n)=T(n-1)+T(1)+θ(n) 最坏的情况发生在子阵列完全不平衡时。 一个子阵中有1个元素,另一个子阵中有(n-1)个元素。 θ(n),因为找到枢轴需要运行时间n 我这样做正确吗?您的递归基本上是正确的,但实际上并没有进行两次递归调用。在快速排序的最坏情况下,pivot将是数组中最大或最小的元素,因此您将在一个大小为n-1的巨大数组中重复出现。另一个子数组的长度为0,因此不进行递归调用
我这样做正确吗?您的递归基本上是正确的,但实际上并没有进行两次递归调用。在快速排序的最坏情况下,pivot将是数组中最大或最小的元素,因此您将在一个大小为n-1的巨大数组中重复出现。另一个子数组的长度为0,因此不进行递归调用。最重要的是,每个级别完成的总功是Θ(n),因此递归关系更合适 T(n)=T(n-1)+Θ(n) 这反过来又解为Θ(n2)
希望这有帮助 你不能观察,因为根据我的研究,T(N)=T(N-K)+T(K-1)+N 在我们有足够的时间之前,我们无法观察到确切的数值 k的值,T(n)=T(an/(a+b))+T(bn/(a+b))+n
其中a/(a+b)和b/(a+b)是考虑中的数组的分数not 2n?…..我刚刚找到一个关于递归关系的非常好的教程,似乎是一个很好的资源:@Nathan really nice resource。我知道如何一次性解决递归关系。谢谢