本帖最后由 朱宏青 于 2012-11-6 20:00 编辑
很简单啊.- public static void zh(char[] chr)
- {
- for(int start = 0,end = chr.length-1;start<end;start++,end--)
- {
- swp(chr,start,end);
- }
- }
复制代码 首先要明白swp()这个方法产生的是什么效果:录入一个数组,将chr[start]于chr[end]这两个数组数据进行互换.这点没有争议吧?
然后就是看这个for循环产生的是什么效果:start记录数组前端的下标.end记录数组后端的下标.每循环一次运行一次,start++ end-- ---->前端的下标越来越大,后端的下标越来越小 两者的差距越来越小 直到start >end 有问题么?
举个例子:123456789.每次拿前面的跟后面的互换,每互换一次前面的往后拿一位,后面的往前拿一位.最后的结果呢?987654321.
就是这样. |