如何在未排序整数数组中找到最大值和最小值?

如何在未排序整数数组中找到最大值和最小值?

方法一
遍历一遍未排序整数数组,先初始化一个最大值参数和一个最小值参数(可以都默认是数组的第一个参数)。在遍历的过程中如果比最小值小就进行赋值最小值,如果比最大值大,就对最大值赋值。遍历结束就可以知道最大值和最小值的数据了。 (这个是感觉最优 只需要遍历一次就可以获取到最小值和最大值)

    private int[] datas = {1,2,3,4,56,7,8,0,0,3,34,657,778,98};
    /**
     * 获取数组中的最小值和最大值
     */
    private void getMaxAndMin(){
        if (datas != null && datas.length > 0){
            int min = datas[0];
            int max = datas[0];
            for (int i = 0; i < datas.length; i++){
                if (min > datas[i]){
                    min = datas[i];
                }
                if (max < datas[i]){
                    max = datas[i];
                }
            }
            Log.e("getMaxAndMin", " min = " + min + " max = " + max);
        }
    }

方法二
将数据进行排序处理,可以使用最优的排序处理(快速排序),获取到排序之后的数组,然后取数组的最前和最后两个值,就是最大值和最小值。(但是这种至少都要遍历一遍以上)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分支程序设计,循环程序设计,子程序结构 1、练习逻辑运算指令、比较指令和条件转移指令的功能、用法以及与标志位的关系和可用的寻址方式 2、用地址表法,完成下面要求的多分支程序的设计。根据MODE单元中的模式字(0-7)分别转向L0-L7标号处执行。L0-L7处分别完成显示‘0’-‘7’字符。 当MODE=0时,转L0标号,完成显示‘0’ 当MODE=1时,转L1标号,完成显示‘1’ 当MODE=2时,转L2标号,完成显示‘2’ 当MODE=3时,转L3标号,完成显示‘3’ 当MODE=4时,转L4标号,完成显示‘4’ 当MODE=5时,转L5标号,完成显示‘5’ 当MODE=6时,转L6标号,完成显示‘6’ 当MODE=7时,转L7标号,完成显示‘7’ 3、编制程序实现如下操作: 设有10个学生成绩,分别统计低于60分、60~69分、70~79分、80~89分、90~99分及100分的人数,并存放于S5、S6、S7、S8、S9、S10单元中。 实验六: 1. 请编写一程序,从附加段中一个排序的字数组中,找出最大数和最小数分别存放在AX 和BX寄存器中。 2. 以GRADE为首地址的10个字的数组中保存有学生成绩。建立一个10个字的RNAK 数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:一个学生的名次等于成绩高于等于该学生的人数加1)。 寄存器分配情况说明如下: AX 存放当前被测学生的成绩 BX 存放当前被测学生的相对地址指针 CX 内循环计数值 DX 存放当前被测学生的名次计数值 SI 内循环测试时的地址指针 DI 外循环计数值 3、数组DATAX,其中的数据排列规律是:头三项是0,0,1,以 每项的值均是前三项之和。试将项值小于等于2000以前的各项数据填入数组DATAX中。 算法: n≥ 4时: ① an=an-1+an-2+an-3 ② an=2an-1—an-4 要求:按上述两种算法编程 4、从DATA_BUF(1000H)开始存放50个字节数据,编写程序将这些数据由小到大排序排序后的数据仍放在该区域中。 要求原始数据在源程序中给出,排序前后的数据以每行10个的格式显示在屏幕上。 5、测量一字符串长度,并用十六进制数显示之
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值