Java 递归方法的大O复杂度
这是一组递归数字的java排列,我需要找出它的大O复杂性。由于嵌套循环的缘故,假设它是O(N^2),但一位朋友评论说递归方法的工作方式不同。 谢谢你的帮助Java 递归方法的大O复杂度,java,recursion,complexity-theory,Java,Recursion,Complexity Theory,这是一组递归数字的java排列,我需要找出它的大O复杂性。由于嵌套循环的缘故,假设它是O(N^2),但一位朋友评论说递归方法的工作方式不同。 谢谢你的帮助 public void permuteRec(ArrayList列表1、ArrayList列表2) { if(list1.isEmpty()) { if(计算距离(列表2)
public void permuteRec(ArrayList列表1、ArrayList列表2)
{
if(list1.isEmpty())
{
if(计算距离(列表2)<距离)
{
path=list2;
重新计算();
}
}
}
其他的
{
对于(int i=0;i
如果方法不是递归的,则可能是O(n^2)。那么,在最坏的情况下,您要调用这个方法多少次?这会给你带来渐进的复杂性。如果你能弄清楚你的代码应该实现什么,这会有所帮助;请举个例子。顺便说一句,你有没有测试过你的代码实际上做了它应该做的事情?我对最里面的循环很好奇,对于每个k,你把一个元素添加到新的列表TMP1中,删除元素βi(…)和……,除了我能看到语法错误之外,你会从BooDrand异常中得到索引,我可以把它看作是O(n^ 2)+t(CopyTeExthSuffes)+t(RealCudiTeXiffes())。作为TMP1,当你调用PyMuTeReC(TMP1,TMP2)时将始终为空编写时的当前代码具有O(n*(n+m))
复杂性(其中n,m分别是列表1和列表2的大小),因为对permoteRec
的每次递归调用都传递一个空的list1
。