有限整数序列中寻找最大值的算法

算法步骤:

1)设临时最大值等于序列中的第一个整数。(整个过程的每一个阶段,临时最大值都等于已检查过的最大整数)

2)将序列中的下一个整数与临时最大值比较,如果这个数大于临时最大值,置临时最大值为这个整数。

3)如果序列中还有其他整数,重复前一个步骤。

4)当序列中不再有其他整数时停止。此刻的临时最大值就是序列中的最大整数。

 

下面是求有限序列中的最大元素算法的伪代码描述。

procedure max(a_{1}a_{2},...,a_{n}:整数)

max := a_{1}

for i := 2 to n

if max < a_{i} then max := a_{i}

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);
}

 

 

猜你喜欢

转载自blog.csdn.net/logic4/article/details/81623497