反转数组与倒序打印---递归法的区别

it2025-09-14  1

给定一个字符数组: 1、倒序打印这个数组 2、反转这个数组

对于需求1递归到最后,直接打印当前的下标即可。

static void reservePrint(char[] s,int start)//反转打印 { if(start==s.length) return; reservePrint(s,start+1); System.out.println(s[start]); }

对于需求2如果按我的递归思路来,就是:把当前下标后面的全部反转好,然后把当前下标插入最后一位,其他人往前挪挪。这样的结果是要挪的东西太多了。 但是这种基于分治的递归,时间复杂度为n.

static void reserveArray(char[] s,int start,int end)//原地反转 { if(start>=end) { return; } char temp=s[start]; s[start]=s[end]; s[end]=temp; reserveArray(s,start+1,end-1); }
最新回复(0)