def unknownsort(A[],x,y):
if x ==y+1:
if A[x]>A[y]:
switch A[x] and A[y]
elif y > x+1:
z = (y-x+1)/3
unkownsort(A[],x,y-z)
unkownsort(A[],x+z,y)
unkownsort(A[],x,y-z)
这个等式有没有名字?对于T(n)所拥有的是什么 T(n)= 3T(n)+ Theta(n)是对的吗?我打算使用师父的定理,但我不确定这是否正确。你也称之为寻找T(n)
的过程我认为unkownsort被调用三次,T(n)= 3T(n),但它有一个基本情况,取决于输入的大小,所以T(n)= 3T(n)+ theta(n )。现在我想知道这个等式是否会因为“z”而错误,因为z操纵了我的数组的大小。
不知何故我想出了这个:T(n)= 3T(n / 3)+1。这是正确的吗?
答案 0 :(得分:0)
好的,作业,让我们坚持提示。
在3T(n)
中,3
是正确的,因为有3个递归调用,但T(n)
不是 - n
应该是({{1}下一个递归调用的大小,目前你说的是大小相同。
n/c
不正确 - 除了递归调用之外,函数中完成了多少工作?工作量是否取决于Theta(n)
和x
(您应该假设任何算术运算总是需要一定的时间,尽管这不是严格正确的)?
你有没有给我们整个功能?如果是这样,我不相信你的算法会做任何特别有用的事情(虽然它看起来像是排序,我不相信它,但我可能是错的),因此可能没有#&# 39;有名字。
T(n)方程称为recurrence relation,因此找到它的过程简称为查找递归关系的过程(我不知道单个术语来表示这一点)。
(您在问题中编辑的更新公式是正确的)