java基础数组最值

java基础数组最值程序中 我们经常使用数组 列表 存储给定的线性序列 例如 1 2 3 4 那么如何查找数组 序列 中的最大值或者最小值呢 查找数组 序列 中最大值或最小值的算法有很多 接下来我们以 3 7 2 1 序列为例讲解两种查找最值的算法 一种是普通算法 另一种是借助分治算法解决 普通算法 普通算法的解决思路是 创建两个变量 max 和 min 分别记录数组中的最大值和最小值

大家好,我是讯享网,很高兴认识大家。



程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢?

查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助分治算法解决。

普通算法

普通算法的解决思路是:创建两个变量 max 和 min 分别记录数组中的最大值和最小值,它们的初始值都是数组中的第一个数字。

从第 2 个数字开始遍历数组,每遇到一个比 max 大的数字,就将它存储到 max 变量中;每遇到一个比 min 小的数字,就将它存储到 min 变量中。直到遍历完整个数组,max 记录的就是数组中的最大值,min 记录的就是数组中的最小值。

下面的动画,演示了找最大值的过程:

数组中找最大值的过程

找最小值的过程和上图类似,这里不再给出具体的动画演示。

—————————————

如下是普通算法对应的伪代码:

 
 讯享网 

实现过程非常简单,感兴趣的读者可以自行阅读源码。

分治算法

下图展示了用分治算法查找 {3, 7, 2, 1} 中最大值的实现过程:

分治算法找最大值

分治算法的实现思路是:不断地等分数组中的元素,直至各个分组中元素的个数 ≤2。由于每个分组内的元素最多有 2 个,很容易就可以找出其中的最值(最大值或最小值),然后这些最值再进行两两比较,最终找到的最值就是整个数组中的最值。

上图所示,借助“分而治之”的思想,我们将“找 {3, 7, 2, 1} 中最值”的问题转换成了:先找出 {3 , 7]、[2 , 1} 中各自的最值,找出的最值再进行两两比较,最终就可以找到整个数组中的最值。

——————————————————

如下是分治算法求数组中最大值的伪代码:

讯享网

——————————————————————

分治算法实现java基础数组最值“求数组中最大值”的 C 语言程序如下:

 

————————————

以上程序的输出结果均为:

最大值:7

您可以根据伪代码和给出的找数组中最大值的程序,自行编写出找数组中最小值的程序,这里不再过多赘述。

--- END ---

————————————————

不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

【值得关注】UP主页 的 编程学习交流俱乐部【点击进入】

小讯
上一篇 2024-12-25 11:12
下一篇 2024-12-31 16:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/6272.html