我有一个问题,当我们得到一个已经排序的数组时,哪种排序算法的时间复杂度最低。
在此代码中,这是一个递归打印元素 1 到 5 的程序,当我使用n--代替 时n-1,出现堆栈溢出错误。而当n-1使用时,代码运行得很好。不应该n--和n-1在此代码中工作相同吗?
//when using n--
class PrintElements1to5
{
public static void main(String[] args)
{
recursivePrint(5);
}
static void recursivePrint(int n)
{
if(n<1)
return;
recursivePrint(n--);
System.out.print(n+" ");
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Exception in thread "main" java.lang.StackOverflowError
Run Code Online (Sandbox Code Playgroud)
//when using n=n-1
class PrintElements1to5
{
public static void main(String[] args)
{
recursivePrint(5);
}
static void recursivePrint(int n)
{
if(n<1)
return;
recursivePrint(n-1);
System.out.print(n+" ");
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)