易语言求数组最值高效方法

在易语言中,取出整数数组的最大数和最小数,核心思路是遍历数组,通过比较和更新变量来实现。以下是两种常用方法的代码实现。

方法一:使用循环直接比较

此方法通过一个循环,同时寻找最大值和最小值,效率较高。

.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行

.局部变量 数组, 整数型, , "0"
.局部变量 最大数, 整数型
.局部变量 最小数, 整数型
.局部变量 i, 整数型

' 假设有一个整数数组
数组 = { 12, 45, 7, 89, 23, 1, 67, 34, 9 }

' 初始化最大数和最小数为数组的第一个元素
最大数 = 数组 [1]
最小数 = 数组 [1]

' 遍历数组,从第二个元素开始比较
.计次循环首 (取数组成员数 (数组), i)
    .如果真 (i > 1) ' 跳过第一个元素,因为它已被用作初始值
        .如果 (数组 [i] > 最大数)
            最大数 = 数组 [i]
        .否则            .如果 (数组 [i] < 最小数)
                最小数 = 数组 [i]
            .如果结束
        .如果结束 .如果真结束
.计次循环结束 ()

' 输出结果
标准输出 (, “最大数:” + 到文本 (最大数) + #换行符)
标准输出 (, “最小数:” + 到文本 (最小数) + #换行符)

返回 (0) ' 可以根据您的需要返回任意数值

方法二:使用数组排序

此方法先对数组进行排序,然后直接取首尾元素。虽然直观,但会改变原数组的顺序。

.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行

.局部变量 数组, 整数型, , "0"
.局部变量 最大数, 整数型
.局部变量 最小数, 整数型

' 假设有一个整数数组
数组 = { 12, 45, 7, 89, 23, 1, 67, 34, 9 }

' 对数组进行排序(从小到大)
数组排序 (数组, 真)

' 排序后,最小数在第一个位置,最大数在最后一个位置
最小数 = 数组 [1]
最大数 = 数组 [取数组成员数 (数组)]

' 输出结果
标准输出 (, “最大数:” + 到文本 (最大数) + #换行符)
标准输出 (, “最小数:” + 到文本 (最小数) + #换行符)

返回 (0) ' 可以根据您的需要返回任意数值

两种方法对比

特性方法一(直接比较)方法二(数组排序)
核心逻辑遍历数组,动态比较更新最大值和最小值。先对数组排序,再取首尾元素。
时间复杂度O(n),只需一次遍历。O(n log n),取决于排序算法效率。
是否改变原数组,原数组顺序不变。,会改变原数组的顺序。
适用场景仅需找出最值,且需保留原数组顺序时推荐使用。需要排序后的数组,或不在意原数组顺序时使用。

推荐使用“方法一”,因为它效率更高且不改变原数据,是解决此类问题的标准做法。


参考来源

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值