C语言丨如何查找数组(序列)中的最大值或者最小值?

本文介绍了如何在C语言中查找数组的最大值和最小值,通过普通算法和分治算法两种方法进行讲解,并提供了相应的伪代码和C语言程序示例。普通算法通过遍历数组更新最大值和最小值;分治算法通过不断划分数组,每次处理两个元素,最后找出整个数组的最值。
摘要由CSDN通过智能技术生成

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

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

普通算法

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

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

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

数组中找最大值的过程

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

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

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

输入 num[1...n]              // 输入 n 个数字

max <- num[1]                // 将第 1 个数字赋值给 max(表示最大值)

min <- num[1]                // 将第 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值