算法步骤:
1)设临时最大值等于序列中的第一个整数。(整个过程的每一个阶段,临时最大值都等于已检查过的最大整数)
2)将序列中的下一个整数与临时最大值比较,如果这个数大于临时最大值,置临时最大值为这个整数。
3)如果序列中还有其他整数,重复前一个步骤。
4)当序列中不再有其他整数时停止。此刻的临时最大值就是序列中的最大整数。
下面是求有限序列中的最大元素算法的伪代码描述。
procedure max(,,...,:整数)
max :=
for i := 2 to n
if max < then max :=
return max{max是最大元素}
当然了,这里的空间和时间复杂度都是线性的,即O(n)。
还有一种方法是,先进行排序,再取最大值,空间复杂度也是O(n),时间复杂度取决于所采用的排序算法。
下面是求有限序列中的最大元素算法的rust实现
fn main() {
let a = [10, 21, 45, 79, -12, -32, 36, 89, -78, -34, -65, -42, 60];
let mut max = a[0];
for i in 1..a.len() - 1 {
if max < a[i] {
max = a[i];
}
}
println!("最大值为{}.", max);
}