You need to enable JavaScript to run this app. Java通过递归打印数组元素的方法运行原理求解
优惠活动
大模型
产品
解决方案
定价
更多

Java通过递归打印数组元素的方法运行原理求解

递归打印数组方法原理说明

你提供的代码如下:

public static void displayArray(int array[], int first, int last) {
  if (first == last)
    System.out.print(array[first] + " ");
  else {
    int mid = (first + last) / 2;
    displayArray(array, first, mid);
    displayArray(array, mid + 1, last);
  } // end if
}

核心原理说明

这个方法采用了分治的递归思路,所有打印逻辑都收敛在递归终止条件中,无需在拆分的递归分支额外加打印语句:

  • 当传入的数组区间[first, last]存在多个元素时,else分支仅做区间拆分动作:将当前区间切为左右两个子区间,依次触发两个子区间的递归调用,本身不执行打印操作
  • 当递归拆分到区间只剩一个元素时(即first == last),触发终止条件的打印逻辑,输出当前唯一的元素

运行示例(以数组[1,2,3,4],首次调用displayArray(arr, 0, 3)为例)

  1. 第一层调用区间[0,3]长度为4,拆分后先执行左子区间[0,1]的递归调用,再执行右子区间[2,3]的递归调用
  2. 左子区间[0,1]长度为2,拆分后先执行[0,0]调用(打印1),再执行[1,1]调用(打印2)
  3. 左子区间执行完成后,右子区间[2,3]拆分后先执行[2,2]调用(打印3),再执行[3,3]调用(打印4)

最终输出结果为1 2 3 4 ,完成全数组打印。

内容的提问来源于stack exchange,提问作者Almamy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 18:06:09