递归算法,用于查找数组中的最小元素

use*_*752 0 java recursion pseudocode

我有一些伪代码用于递归算法,该算法可以找到数组中的最小数字.

这是算法.

Min(A[0..n - 1])
If n = 1 return A[0]
else
{ 
  temp <-- Min(A[0..n - 2])
  if temp <= A[n - 1]
     return temp
  else return A[n - 1]
}
Run Code Online (Sandbox Code Playgroud)

我不理解这个伪代码的一部分是"temp < - Min(A [0..n - 2])"行.具体为什么在递归调用中它是"n-2"而不是"n-1"?

我的另一个问题是如何在代码中实现该行.我正在使用Java.

在此先感谢您的帮助.

Oli*_*rth 5

因为数组的索引从0到n-1(包括0和n-1).你需要递归一个较小的元素的子数组,因此n-2.