需要在数组中查找min元素中阐明递归方法

时间:2019-02-12 23:01:07

标签: java recursion

我知道有人已经问过这个问题,但是我仍然不太了解幕后发生的事情。问题是找到数组中的最小元素。

假设我有int [] a = {3,2,5,7};

我的理解方式是:

mid =(0 + 3)/ 2 = 1
    然后min1 = min(a,0,中'1')
         中=(0 + 1)/ 2 = 0
             然后min1 = min(a,0,中间的'0')
 所以现在条件满足了,然后返回a [0],即3。

这就是我现在在想的。而且我也看不到任何代码能在数组的每一半中找到最小的元素。

请向我清楚地解释。

谢谢

private static int min(int[] array, int start, int end){
                        // a           0           3

    if(start == end){
        return array[start];
    }

    int mid = (start+end)/2;
    int min1 = min(array, start, mid);
    int min2 = min(array, mid + 1, end);

    return (min1 < min2) ? min1: min2;
}

0 个答案:

没有答案